ASP.NETMVCアプリに取り組んでいます。イベントが発生したときにいくつかのスレッドを生成したかったのですが、スレッドの戻り値を気にせず、非同期呼び出しを行いたかったので、ThreadPool.QueueUserWorkItemを使用しています。
public event SomeEventHandler SomeEvent;
private void SomeEventhappened(UserProfile arg)
{
SomeEventHandler handler = SomeEvent;
if (handler != null)
{
// handler(currentUser);
foreach (SomeEventHandler wc in handler.GetInvocationList())
{
SomeEventHandler wc2 = wc;
ThreadPool.QueueUserWorkItem(
delegate { wc2(arg); }
);
}
}
}
イベントにイベントハンドラー関数を添付しました
これが私がイベントを提起する方法です、
this.SomeEventhappened(userProfile); //Here the event is raised
上記のコードはすべて同じクラスで発生しています。イベントハンドラー関数のみが他のクラスにあります。スレッドが完了した後、スレッドを強制終了する必要がありますか?私が何か間違ったことをしているなら、私に提案してください。