相关疑难解决方法(0)

如何在C#中创建异步方法?

我读过的每篇博文都告诉你如何在C#中使用异步方法,但由于一些奇怪的原因,从未解释如何构建自己的异步方法来使用.所以我现在有这个代码消耗我的方法:

private async void button1_Click(object sender, EventArgs e)
{
    var now = await CountToAsync(1000);
    label1.Text = now.ToString();
}
Run Code Online (Sandbox Code Playgroud)

我写的这个方法是CountToAsync:

private Task<DateTime> CountToAsync(int num = 1000)
{
    return Task.Factory.StartNew(() =>
    {
        for (int i = 0; i < num; i++)
        {
            Console.WriteLine("#{0}", i);
        }
    }).ContinueWith(x => DateTime.Now);
}
Run Code Online (Sandbox Code Playgroud)

这是使用Task.Factory,编写异步方法的最佳方法,还是应该用另一种方式编写?

c# async-await c#-5.0

183
推荐指数
3
解决办法
14万
查看次数

如何获得等待的Thread.Sleep?

我正在编写一个基于await/sleep范例的网络绑定应用程序.

有时会发生连接错误,根据我的经验,等待一段时间再重试操作是值得的.

问题是,如果我在await/async中使用Thread.Sleep或类似的阻塞操作,它会阻止调用程序线程中的所有活动.

我应该用什么来替换Thread.Sleep(10000)以获得相同的效果

await Thread.SleepAsync(10000)
Run Code Online (Sandbox Code Playgroud)

UPDATE

我更喜欢一个没有创建任何额外线程的答案

.net c# multithreading async-await

120
推荐指数
1
解决办法
4万
查看次数

标签 统计

async-await ×2

c# ×2

.net ×1

c#-5.0 ×1

multithreading ×1