यह क्या है और इसका उपयोग कैसे करें?क्या कोई सिंक्रनाइज़ेशन क्लास है जो सी # में फीफो ऑर्डर की गारंटी देती है?
मुझे इसकी आवश्यकता है क्योंकि मेरे पास एक टाइमर है जो हर सेकेंड में डीबी में प्रवेश करता है, और मेरे पास टाइमर हैंडलर और मुख्य थ्रेड के बीच एक साझा संसाधन है। मैं यह जानना चाहता हूं कि अगर टाइमर हैंडलर सम्मिलन में एक से अधिक सेकंड लेता है तो प्रतीक्षा किए गए थ्रेड को क्रम में निष्पादित किया जाना चाहिए। यह मेरी घड़ी हैंडलर
private void InsertBasicVaraibles(object param)
{
try
{
DataTablesMutex.WaitOne();//mutex for my shared resources
//insert into DB
}
catch (Exception ex)
{
//Handle
}
finally
{
DataTablesMutex.ReleaseMutex();
}
}
के लिए एक नमूना कोड है लेकिन वर्तमान में म्युटेक्स किसी भी क्रम गारंटी नहीं है। विस्तृत प्रश्न डालने के बाद जवाब नहीं है !!!
परिभाषा के द्वारा एक ताला फीफो है:
reentrancy मुद्दे पर जैसा कि मैंने यह करने के लिए कोड को संशोधित किया। एक धागा अंदर जाता है, और जब तक यह बाहर नहीं जाता है तब तक कोई और नहीं हो जाता है! –
@ मिच: लेकिन इस बात की कोई गारंटी नहीं है कि पहले धागे को इंतजार करना था जो तुरंत बाद में अनब्लॉक हो जाता है। तो नहीं, ताले फीफो नहीं हैं। –
(यानी यदि टी 1 वर्तमान में लॉक रखता है, तो टी 2 इसे हासिल करने का प्रयास करता है, तो टी 3 इसे हासिल करने का प्रयास करता है, टी 3 के पहले टी 3 इसे प्राप्त करने की कोई गारंटी नहीं है।) –