मैं इस तरह बाहरी ऐप के लिए खींचें ड्रॉप कर रहा हूँ WinForms अनुप्रयोग जमा:DoDragDrop कभी कभी
string[] files = new string[/* */];
// get files
DataObject o = new DataObject(DataFormats.FileDrop, files);
DoDragDrop(o, DragDropEffects.Copy | DragDropEffects.Move);
और कुछ क्षुधा फ़ाइलें लेते हैं और उन्हें और मेरे ऐप पर कार्रवाई करने के पर चले जाएँगे यह सामान है करने के लिए स्वतंत्र है , लेकिन कुछ ऐप्स मेरी ऐप को फ्रीज कर देंगे जब तक कि यह सभी फाइलों को संसाधित नहीं करता ... क्या मैं इसके आसपास जा सकता हूं? मैंने इसे थ्रेड में करने की कोशिश की है लेकिन यह इतना अच्छा काम नहीं करता है - यह बिल्कुल काम नहीं करता ... इसलिए, इस कोड को बनाने के लिए कोई सुझाव मेरे ऐप को लटका नहीं देता है?
हम्म, यह दिलचस्प है और मैं शर्त लगाता हूं कि आप सही हैं, लेकिन इससे समस्या हल नहीं होती है;) मेरा मतलब है ... मुझे DoDragDrop async चलाने की आवश्यकता नहीं है ... मुझे बस इतना करना है कि मुझे करना है डेटा को एसिंक होने का आदान-प्रदान करने का हिस्सा ... मैंने कहीं पढ़ा है कि डेटाऑब्जेक्ट को कुछ एसिंक इंटरफ़ेस को कार्यान्वित करना होगा, लेकिन मुझे अब यह नहीं मिल रहा है ... क्या आपको शायद पता चलेगा कि मुझे 'जगह' कहां मिल सकती है जहां मेरा ऐप दूसरे ऐप के साथ डेटा का आदान-प्रदान करता है? (DoDragDrop OFC का उपयोग करके) – argh
डेटा एक्सचेंज भाग DoDragDrop के अंदर है, इसलिए यदि आप चाहते हैं कि डेटा एसिंक को एसिंक हो, तो आपको DoDragDrop को किसी अन्य थ्रेड पर रखना होगा। और यह एक एसटीए धागा होना चाहिए। क्या आप जानते हैं कि थ्रेड को .NET में एसटीए कैसे मजबूर करना है? –
खैर ... मुझे ठीक कर लें मैं गलत हूँ लेकिन अगर मैं मिल गया है: [STAThread] static void मुख्य (स्ट्रिंग [] पैरामीटर) तो यह है, है ना एसटीए थ्रेड में चलाया जा रहा है? – argh