Thread.Sleep 会影响 ThreadPool 吗?

Vit*_*nko 5 c# multithreading threadpool windows-phone-7 windows-phone-8

我需要为自己的目的控制一个线程:计算、等待、报告等...
在所有其他情况下,我都使用ThreadPool或 TaskEx。

在调试器中,当我执行操作时Thread.Sleep(),我注意到 UI 的某些部分变得越来越不负责任。不过,没有调试器似乎工作得很好。

问题是:如果我创建新线程并Sleep()对其进行操作,它会影响线程池/任务吗?

编辑:这里是代码示例:

我的应用程序中的一个随机位置:

ThreadPool.QueueUserWorkItem((state) =>
{
    LoadImageSource(imageUri, imageSourceRef);
});
Run Code Online (Sandbox Code Playgroud)

我的应用程序中的另一个随机位置:

var parsedResult = await TaskEx.Run(() => JsonConvert.DeserializeObject<PocoProductItem>(resultString, Constants.JsonSerializerSettings));
Run Code Online (Sandbox Code Playgroud)

我的ConcurrentQueue(已修改,原文摘自这里):

为队列需求创建线程:

public void Process(T request, bool Async = true, bool isRecurssive = false)
{
    if (processThread == null || !processThread.IsAlive)
    {
        processThread = new Thread(ProcessQueue);
        processThread.Name = "Process thread @ " + Environment.TickCount;
        processThread.Start();
    }
Run Code Online (Sandbox Code Playgroud)

如果其中一个任务报告一些网络问题,我希望线程稍等一下

if (ProcessRequest(requestToProcess, true))
{
    RequestQueue.Dequeue();
}
else
{
    DoWhenTaskReturnedFalse();
    Thread.Sleep(3000);
}
Run Code Online (Sandbox Code Playgroud)

那么,问题再次出现:Thread.Sleep(3000);从 调用的ThreadPool 或 TaskEx.Run() 能否new Thread(ProcessQueue);影响 ThreadPool 或 TaskEx.Run() ?

Seb*_*sen 1

不,Thread.Sleep() 仅在当前线程上。Thread.Sleep(int32) 文档

线程挂起的毫秒数。