- मुझे यह त्रुटि संदेश क्यों मिलता है? "एसटीए थ्रेड पर एकाधिक हैंडल के लिए प्रतीक्षा करें समर्थित नहीं है।"
- क्या मुझे [MTAThreadAttribute] विशेषता का उपयोग करना चाहिए? अद्यतन: WPF अनुप्रयोगों के साथ काम नहीं करते हैं!
नोट: यह त्रुटि प्रतीक्षा है WaitHandle.WaitAll (doneEvents); मैं मानक WPF प्रोजेक्ट का उपयोग कर रहा हूं।एसटीए थ्रेड पर एकाधिक हैंडल के लिए WaitAll समर्थित नहीं है
private void Search()
{
const int CPUs = 2;
var doneEvents = new ManualResetEvent[CPUs];
// Configure and launch threads using ThreadPool:
for (int i = 0; i < CPUs; i++)
{
doneEvents[i] = new ManualResetEvent(false);
var f = new Indexer(Paths[i], doneEvents[i]);
ThreadPool.QueueUserWorkItem(f.WaitCallBack, i);
}
// Wait for all threads in pool
WaitHandle.WaitAll(doneEvents);
Debug.WriteLine("Search completed!");
}
अद्यतन: निम्नलिखित समाधान WPF अनुप्रयोगों के लिए काम नहीं करता है! एमटीएटीएचएडएट्रिब्यूट में मुख्य एप्लिकेशन विशेषता को बदलना संभव नहीं है। इसके परिणामस्वरूप निम्नलिखित त्रुटि होगी:
त्रुटि: "एसटीए थ्रेड पर एकाधिक हैंडल के लिए प्रतीक्षा करें समर्थित नहीं है।"
आप महसूस करते हैं कि आप अनुप्रयोग पूरी तरह से स्थिर है, जब तक उन Indexers की जाती हैं? – liggett78
हां! मुझे पता है कि। लेकिन जैसा कि यह नहीं चलता है। –
http://stackoverflow.com/questions/3784510/notsupportedexception-on-waithandle-waitall –