gpt4 book ai didi

c# - 为什么不调用此 C# 4.0 异步方法?

转载 作者:太空狗 更新时间:2023-10-29 22:16:33 25 4
gpt4 key购买 nike

我正在尝试编写一段非常简单的异步代码。我有一个不带任何参数的 void 方法,它是从 Windows 服务调用的。我想异步启动它,这样服务就不必等待方法完成。

我创建了一个非常简单的测试应用程序以确保我的编码正确,但异步方法并未被调用。任何人都能看到我做错了什么?顺便说一句,我使用的是 .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");
}
}
}

感谢您提供的任何帮助。

最佳答案

ThreadPool 中部署异步方法之前,您的程序将终止。让你的程序打开一会儿。也许 Console.ReadKey()Main 的末尾?

关于c# - 为什么不调用此 C# 4.0 异步方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13807618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com