我想写的是以下内容:
async void Foo()
{
var result = await GetMyTask().IgnoreCancelAndFailure();
ProcessResult(result);
}
Run Code Online (Sandbox Code Playgroud)
代替:
void Foo()
{
GetMyTask().ContinueWith(task => ProcessResult(task.Result),
TaskContinuationOptions.OnlyOnRanToCompletion);
}
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何实现IgnoreCancelAndFailure方法,它具有以下签名:
//On cancel or failure this task should simply stop and never complete.
Task<T> IgnoreCancelAndFailure<T>(this Task<T> task)
{
throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)
如果可能,我应该如何实现IgnoreCancelAndFailure?
我需要等待我async void完成.它有一些await Task.Delay功能,我需要它们继续之前完成.这个空格不会返回任何内容,所以我没有看到制作它的理由async Task<>,我也在这个空格内乱洗一个数组,我声明了一些变量.那我该怎么做呢?是async Task<>唯一的方法吗?我的空虚并不期待任何参数/输入.
我有以下代码:
static void Main(string[] args)
{
// start import process
Task<int> task = StartImportProcess();
task.Wait();
// check result
// process finished
Console.ReadKey();
}
static async Task<int> StartImportProcess()
{
int result = 0;
result = await ImportCustomers();
// some other async/await operations
return result;
}
static Task<int> ImportCustomers()
{
// some heavy operations
Thread.Sleep(1000);
return 1; // <<< what should I return?
}
Run Code Online (Sandbox Code Playgroud)
使用Task和async/await。我想int作为任务的结果返回。我应该归还哪个对象?return 1;将无法正常工作。
我有一个公共方法
public Task<IEnumerable<MyClass>> GetMyClassObjects()
{
return ??myresult??;
}
Run Code Online (Sandbox Code Playgroud)
以及如何返回正确的结果?
如何修复此任务/等待代码?我基本上在调用一个返回的方法Task和Awaiting它以后。首先,它说了Awaited task returns no value它所做的(无论如何对我来说)。然后它说它不能将void转换为int。怎么来的?提前致谢。
class Program
{
static async void Main(string[] args)
{
var tsk = First();
int mynumb = await tsk;
return;
}
static async Task<int> First()
{
return 2;
}
}
Run Code Online (Sandbox Code Playgroud)
如何使用 VB.NET 创建计划任务 - 单击按钮时从 vb.net 程序填充计划任务字段?
我目前一无所有,我什至不知道是否有可能。
因为任务不能运行两次(它将引发异常)。我正在创建2个任务。是否有一种很好的方法来代替任务,也许是这样的:
Task t1 = new Task();
Task t2 = new Task(t1);
Run Code Online (Sandbox Code Playgroud) 为什么我们在 WebApi c# 中需要异步任务,无论如何,默认的 Web API 请求将仅通过创建或重用现有线程来运行。那么线程已经被使用了?
可以Task用作字典键还是一个坏主意?任何可能因此而出现的问题?
task ×9
c# ×8
async-await ×4
.net ×2
asynchronous ×1
dictionary ×1
ienumerable ×1
schedule ×1
vb.net ×1
webapi ×1