私は本当に単純な非同期コードを書こうとしています。Windows サービスから呼び出されるパラメーターを取らない void メソッドがあります。メソッドが完了するのを待ってサービスがぶらぶらする必要がないように、非同期で開始したいと思います。
コーディングが正しく行われていることを確認するために非常に単純なテスト アプリを作成しましたが、非同期メソッドが呼び出されていません。私が間違ったことを誰でも見ることができますか?ところで、私は .NET 4.0 を使用しているため、await を使用できません (これははるかに簡単です!)。
これが私のテストサンプル全体です...
using System;
using System.Threading;
namespace AsyncCallback {
internal class Program {
private static void Main(string[] args) {
Console.WriteLine(DateTime.Now.ToLocalTime().ToLongTimeString() + " - About to ask for stuff to be done");
new Action(DoStuff).BeginInvoke(ar => StuffDone(), null);
Console.WriteLine(DateTime.Now.ToLocalTime().ToLongTimeString() + " - Asked for stuff to be done");
}
private static void StuffDone() {
Console.WriteLine(DateTime.Now.ToLocalTime().ToLongTimeString() + " - Stuff done");
}
private static void DoStuff() {
Console.WriteLine(DateTime.Now.ToLocalTime().ToLongTimeString() + " - Starting to do stuff");
Thread.Sleep(1000);
Console.WriteLine(DateTime.Now.ToLocalTime().ToLongTimeString() + " - Ending doing stuff");
}
}
}
ご協力いただきありがとうございます。