適切な作業スレッドのタイマー スレッドで実行されるメソッドを呼び出す必要があります。Invoke/BeginInvoke プロセスが機能しています。データ交換のために 1 つのスレッド間データ コンテナーを共有する 2 つのスレッドがあります。1 つはキューをいっぱいにして、もう 1 つはキューを処理する必要があります。空の状態の後にキューがいっぱいになると、キューはイベントを発生させます。すべての問題は、経過したイベントで新しいスレッドを開くタイマーによって引き起こされます。Dispatcher を使用して正しいスレッドにディスパッチしていますが、この Dispatcher 以外はすべて機能します。:-)
お願いします、誰か問題がどこにあるのか分かりますか?
完全なテスト コードはhttp://pastebin.com/jqYbR9PSにあります。
デバッグ出力は次のとおりです。
App Thread ID: 9
Processor Thread ID: 10
Processor Dispatcher Thread ID: 10
The thread '<No Name>' (0x888) has exited with code 0 (0x0).
Processor QueueListener caller Thread ID: 12
Processor Dispatcher Thread ID: 10
Processor invoking ProcessQueue.
...here shut be processing output...
Processor invoked ProcessQueue.
App Thread ID on end: 9
The thread 'vshost.RunParkingWindow' (0x17c4) has exited with code 0 (0x0).
The thread '<No Name>' (0x820) has exited with code 0 (0x0).
The program '[5760] TestingConsoleApplication.vshost.exe: Managed (v4.0.30319)' has exited with code 0 (0x0).
ProcessQueue が呼び出されることはありません。
ありがとうございました。