通过问题的标题,人们会立即说“不,这是不可能的!”,但请继续阅读。 (顺便说一句,我搜索过,没有这样的问题,所以afaik这个不是重复一次)
阅读“C#5.0中的异步”我读了
不安全代码
标记为不安全的代码可能不包含等待。不安全的代码应该是非常罕见的,应该保存到不需要异步的自包含方法。无论如何,await编译器转换会破坏大多数情况下的不安全代码(页30)
我从中收集到的是里面一个不安全的块,你不能写“等待”。 但是如何(并且跟随我之前的问题)一个函数
void DoSomethingUnsafeHere(int[,] image)
{
unsafe{
}
}
async Task Caller()
{
await Task.Run(() => DoSomethingUnsafeHere(image));
}
我猜这是可能没有问题,不是吗? 当然,这似乎是一种独立的方法。 任何评论,对此的建议将不胜感激
答案 0 :(得分:1)
是的,这应该没有问题。
(您期望得到什么样的答案?async
方法由编译器转换为状态机,这可能会破坏unsafe
代码。调用方法不是问题,该方法是async
,unsafe
还是其他任何方法都无关紧要。)