2

SynchronizationContext を使用して GUI と対話するエージェントを作成しました。

type AsyncWorker(id:int) =
    let someEvent = new Event<int * string>()
    let errorEvent = new Event<_>()
    let syncContext = SynchronizationContext.Current

    let f (inbox: MailboxProcessor<_>)  = 
        let rec loop () = async {        
            let! message = inbox.Receive ()
            ...
            syncContext.RaiseEvent someEvent (id, str)
        }

その中に危険はありますか?エージェントが 20 人いる場合はどうなりますか? これらの発生したイベントは同期されていますか? このイベントの長い計算関数があるとします。他のエージェントのイベント ハンドラーがその終了を待っていることを確認できますか?

4

0 に答える 0