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() ?