私はこの興味深い質問に出会いました:
イベントがあり、2つの長い計算関数がこのイベントにサブスクライブしている場合:
同期して動作しているようです:(メソッド2はメソッド1が終了するまで待機する必要があります)
public class A
{
public event Action f;
public void Start()
{
f();
}
}
void Main()
{
A a = new A();
a.f += Work1;
a.f += Work2;
a.Start();
}
public void Work1()
{
"w1 started".Dump();
decimal k = 0;
for(decimal i = 0; i < (99999999); i++)
{
k++;
}
"w1 ended".Dump();
}
public void Work2()
{
"w2 started".Dump();
decimal k = 0;
for(decimal i = 0; i < 99999999; i++)
{
k++;
}
"w2 ended".Dump();
}
結果 :
質問 :
私見、それは呼び出しリストを持っています、そしてそれがそれが同期的に実行される理由です。
どうすれば実行できますA-synchronously
か?