我的任务有问题。当我尝试从我的任务中收回返回的变量时,我无法使用.Result属性来获取它。这里是我的代码:为什么不能使用Task <>。Result属性?
var nextElement = dir.GetValue(i++).ToString();
Task buffering = Task<byte[]>.Run(() => imageHashing(nextElement));
bitmapBuffer = buffering.Result;
和imageHasing函数声明如下:public bool[] imageHashing(string path)
我得到一个错误saing:
严重性代码说明项目文件的线路抑制状态 错误CS1061“任务'不包含'结果'的定义,并且没有 扩展方法'结果'接受第一个参数类型'任务' 可以找到(你是否缺少使用指令或程序集 参考?)
从this microsoft website例如作品,我不明白为什么。
好,好消息,因为你在这里使用Task是完全没有意义的。您正在阻止当前线程,因此您可以直接调用imageHashing并跳过Task.Run。 – Will
你需要声明它为'任务'。看到[这个问题](https://stackoverflow.com/questions/11333297/threading-tasks-task-does-not-contain-a-definition-for-result)的解释。 –
或者使用var而不是 –