जो मैं कह सकता हूं उससे मुझे जानकारी के भ्रामक बिट्स हैं। मुझे पृष्ठभूमि में एक अलग थ्रेड चलाना होगा।कार्य का उपयोग करते समय एक नया धागा बनाया गया है। स्टार्टन्यू विधि
फिलहाल मैं इस तरह यह कार्य करें:
var task = Task.Factory.StartNew
(CheckFiles
, cancelCheckFile.Token
, TaskCreationOptions.LongRunning
, TaskScheduler.Default);//Check for files on another thread
private void CheckFiles()
{
while (!cancelCheckFile.Token.IsCancellationRequested)
{
//do stuff
}
}
यह मुझे हमेशा के लिए एक नया धागा बनाता है। हालांकि कई चर्चाओं के बाद भी अगर इसे लॉन्ग राइजिंग के रूप में चिह्नित किया गया है तो यह गारंटी नहीं देता है कि एक नया धागा बनाया जाएगा।
thQueueChecker = new Thread(new ThreadStart(CheckQueue));
thQueueChecker.IsBackground = true;
thQueueChecker.Name = "CheckQueues" + DateTime.Now.Ticks.ToString();
thQueueChecker.Start();
private void CheckQueue()
{
while (!ProgramEnding)
{
//do stuff
}
}
आप सुझाव है कि मैं इस दृष्टिकोण एक नया धागा की गारंटी करने के लिए वापस जाने के लिए किया जाता है:
अतीत में मैं कुछ इस तरह किया है?
'लॉन्ग राइजिंग' शेड्यूलर के लिए सिर्फ एक संकेत है - अगर आपको हमेशा एक नया थ्रेड होना चाहिए, तो आपको एक बनाना होगा। –
फैंसी इसे एक उत्तर के रूप में जोड़ रहा है? – Jon
धन्यवाद जॉन :) –