如何在便携式类库中创建线程?

时间:2012-04-28 12:22:03

标签: .net portable-class-library

使用xna定位xbox360的F#代码在将项目转换为可移植类库后无法编译。

let thread = Thread(fun () ->
    setAffinity()

线程变为红色曲线,错误信息显示

  

错误1此类型没有可访问的对象构造函数

果然,如果我在对象资源管理器中查看mscorlib,该类型没有构造函数。 然而根据MSDN,构造函数存在于xbox和PCL中。

编辑:我尝试使用C#PCL,我也遇到了同样的错误。

3 个答案:

答案 0 :(得分:7)

创建线程不可移植。你的链接错了,它没有谈论PCL。

这是使用可移植类库的成本,它是在减去至少一个可能目标不支持的所有内容之后遗留下来的。哪个不会留下太多,PCL相当小。最大的挂起是一个目标,实际上没有提到支持,但WinRT(又名Metro)。它有一个严重限制的api。

请考虑使用ThreadPool.QueueUserWorkItem()。我假设有一天在PCL中支持Task。这是一项正在进行中的工作。

答案 1 :(得分:1)

不要滑稽,但这听起来像一个错误,这就是我将如何进行。将它发送到Microsoft dot com的fsbugs

答案 2 :(得分:0)

有一个BETA版本支持.NET 4.0,SL5,Phone 7.5中的异步。请参阅David Kean关于此主题的帖子:

Can the Async CTP be used with a portable library

和BCL博客上的这篇文章:

http://blogs.msdn.com/b/bclteam/archive/2012/10/22/using-async-await-without-net-framework-4-5.aspx