【发布时间】:2014-11-18 03:18:48
【问题描述】:
我正在尝试使用 Lambda 表达式发现所有连接到系统的逻辑磁盘,该表达式使用 await 关键字来异步执行函数。一切似乎都很好,除了退货声明。
return(Search.Get()); 无法编译,因为这个错误:
“无法将 lambda 表达式转换为委托类型 'System.Func>',因为块中的某些返回类型不能隐式转换为委托返回类型 (CS1662) - D:\PugApplications\Pug_AdvancedControls\Pug_AdvancedControls\Pug_FileSystemTree\ Pug_FileSystemNode.cs:34,14
我该怎么做?我读过的所有内容都表明这应该有效。
Pug_DriveType 只是我为反映 Win32 DriveType 枚举而编写的一个枚举。
// 读取驱动器
Func<Pug_DriveType, Task<ManagementObjectCollection>> ReadTask = (Pug_DriveType DT) =>
{
StringBuilder Query =
new StringBuilder("SELECT * FROM Win32_LogicalDisk WHERE DriveType=\"")
.Append((int)DT).Append("\"");
ManagementObjectSearcher Search = new ManagementObjectSearcher(Query.ToString());
return (Search.Get());
};
感谢您的帮助 丹尼
【问题讨论】:
标签: c# winforms asynchronous lambda async-await