gpt4 book ai didi

c# dispatch queues 就像在 objective c 中一样

转载 作者:搜寻专家 更新时间:2023-10-30 19:47:49 25 4
gpt4 key购买 nike

我想在 C# 中模仿 Objective-C 调度队列的行为。我看到有一个任务并行库,但我真的不明白如何使用它,希望得到一些解释。

在 objective-c 中我会做类似的事情:

-(void)doSomeLongRunningWorkAsync:(a_completion_handler_block)completion_handler
{
dispatch_async(my_queue, ^{
result *result_from_long_running_work = long_running_work();
completion_handler(result_from long_running_work);
});
}

-(void)aMethod
{
[self doSomeLongRunningWorkAsync:^(result *) { // the completion handler
do_something_with_result_from_long_running_async_method_above;
}];

}

如何将其翻译成 C# 风格的任务并行库?

有比较网站吗?

最佳答案

如果您只想在后台线程上执行一些长时间运行的 CPU 密集型代码,并在完成后在 UI 线程上处理结果,请使用 Task.Run()await 组合:

async Task AMethod()
{
var result = await Task.Run(() => LongRunningWork());
DoSomethingWithResult(result);
}

AMethod() 现在是一个 async Task 方法,这意味着它的调用者也必须是一个 async 方法。

关于c# dispatch queues 就像在 objective c 中一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17259634/

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