私はWindowsプロジェクトと5秒ごとにタイマーを持つ1つのフォームを持っています。
これは、テーブルという名前のリクエストからメソッドを呼び出して処理します。
しかし、応答に時間がかかりすぎるメソッドタイプがいくつかあり、それらのメソッドを別のスレッドに配置する必要があります。両方のリクエストタイプを別々のスレッドと同期で実行できるようにします。
スレッド(マルチ非同期スレッド)を使用して両方を分離するにはどうすればよいですか?
私はWindowsプロジェクトと5秒ごとにタイマーを持つ1つのフォームを持っています。
これは、テーブルという名前のリクエストからメソッドを呼び出して処理します。
しかし、応答に時間がかかりすぎるメソッドタイプがいくつかあり、それらのメソッドを別のスレッドに配置する必要があります。両方のリクエストタイプを別々のスレッドと同期で実行できるようにします。
スレッド(マルチ非同期スレッド)を使用して両方を分離するにはどうすればよいですか?
.NET4.0Task
クラスを確認することをお勧めします。毎回フルスレッドを起動するのはやり過ぎかもしれません。タスクは、タイマーとともに、基盤となるスレッドプールを使用して作業を並行して実行します。
aの使用Task
は次のように簡単です。
Task t = Task.Factory.StartNew(
() =>
{
// task code here
});
using System;
using System.Threading;
class Program
{
static void Main()
{
Thread thread1 = new Thread(new ThreadStart(A));
Thread thread2 = new Thread(new ThreadStart(B));
thread1.Start();
thread2.Start();
thread1.Join();
thread2.Join();
}
static void A()
{
Thread.Sleep(100);
Console.WriteLine('A');
}
static void B()
{
Thread.Sleep(1000);
Console.WriteLine('B');
}
}