当前位置: 首页 > 编程语言 > C#

可移植类库中的Thread.Sleep()分享

时间:2023-04-11 00:42:50 C#

可移植类库中的Thread.Sleep()MSDN文档中说Thread.Sleep()可以在可移植类库中使用。编译器另有说明。除了旋转循环,我还有什么选择?Thread.CurrentThread.Join()也不存在。项目文件:DebugAnyCPU{C46B138E-CC30-4397-B326-8DD019E3874B}LibraryPropertiesx0xtest.AVRx0xtest.AVRv4.0Profile3512{786C830F-07A1-408B-BD7F-6EE04809D6DB};{BE04EC0-331F-00EFBCC04}trueF79falsebinDebugDEBUG;TRACEprompt4pdbonlytruebinReleaseTRACEprompt4{F78547AC-1CA1-4ADB-9FA8-3E7DEB682240}x0xtest.Comm这是“便携”的不幸副作用。通过减法,库变得非常便携,删除了在许多可能目标之一上不可用的所有部分。这对Thread类造成了严重破坏,它根本没有任何有用的成员。只有其中的5个,MemoryBarrier()、CurrentCulture、CurrentThread、CurrentUICulture和ManagedThreadId。尽管这看起来很奇怪,但广告目标的交叉点肯定支持更多。这可能与未公开的有关。即将在ARM内核上运行的Windows8版本。其他称为WinRT或Metro或“用于Metro风格应用程序的.NET”API,具体取决于您使用的工具。WinRT严重削减了传统的WindowsAPI,其System.Windows.Threading命名空间非常空。这将在SO上产生大量“Eeek,我现在该怎么办”问题。这里可能的解决方法是刻录一个虚拟的System.Threading.ManualResetEvent对象。它有一个WaitOne(TimeSpan)方法。Fwiw,我个人并不期待对这个库进行编程。到目前为止最惊人的消息是在您提供的链接的问答部分:问:我想问一下System.Linq.Expressions.Expression类的Compile方法有什么用。答:它在WindowsPhone/Xbox上不受支持,因此它只会在您面向Silverlight+.NET时出现。哎哟。便携和运动。这需要一段时间来炖。我同情DevDiv,尤其是DavidKean,因为他们富有同情心,但工作艰巨。(我“拥有”Microsoft的便携式图书馆项目)不幸的是,这是我们最近对便携式图书馆项目的表面区域进行的更改,以便我们可以运行并被Metro应用程序引用。Metro风格应用程序、VisualStudio11和Windows8的新功能之一是应用程序不再需要创建和控制自己的线程(这很难做到正确)。相反,这个想法是您使用语言(即异步/等待)和框架功能(任务)来执行和同步应该在后台发生的事情。使用什么作为替代品(例如,ManualResetEvent、Task.Delay)完全取决于您的场景和您的目标平台。你能解释一下你在做什么吗?System.Threading.Tasks.Task.Delay(ms).Wait();作为System.Threading.Thread.Sleep(ms)的替代品;这在移植遗留代码库时效果很好。尝试使用超时等待http://msdn.microsoft.com/en-us/library/system.threading.manualresetevent.aspx。可以在System.Threading.Tasks中使用Task.Delay以上就是C#学习教程:可移植类库中的Thread.Sleep()分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: