pythonでリストにasyncの関数オブジェクトを入れていき、
遅延実行したいと考えてます
とりあえず、分かる範囲で書いてみました
functions = [] functions.Add( ???? ) async execute(functions): for func in functions: await func()
C# で書くとこんな感じの部分をどうかけばいいのかがわかりません
List<Func<Task>> functions = new List<Func<Task>> (); functions.Add( async () => { await Task.Delay(1); Console.WriteLine('1'); await Task.Delay(1); Console.WriteLine('2'); } );
追記
やりたいことを書いたほうがいいというので書きます
async/await はhttpを使ってpostするために必要です
100個ほどの処理リストがあり、それぞれの実行結果に合わせて、AかBかCのデータをpostする必要があります
処理リストを見た時点で、どのデータをpostするかはその時に決定しますが、
実際にpostの処理を行うのは処理リストを全部なめた後です
(そのため遅延実行と言っています)
なぜそういうことをするかというと、それぞれに優先度をつけてその順でpostしたいからです
この優先度順に実行する処理は書けるので割愛しています
出来ればローカル変数のキャプチャを使ってpost処理を書きたいです
C#での書式を基準に考えているので、Pythonに同様の構文がないのかすらわかっておらず
そのためこのような投稿となっています
解決案の一つとして、post処理のメタデータをリストに入れて、
関数オブジェクトをリストに入れない方法はあるとは思いますが、
目的として、Pythonの構文を学びたい意図があります
回答1件
あなたの回答
tips
プレビュー