मुझे कोई समस्या है। मेरे पास थ्रेड का उपयोग कर एक वीसीएल एप्लीकेशन है। यह थ्रेड कुछ गणना करता है और सिंक्रनाइज़() के माध्यम से मेनफॉर्म की विधि को कॉल करता है। यह सब ठीक काम करता है, मेरे पास "स्टार्ट" बटन है, जो थ्रेड बनाता है और एक "स्टॉप" बटन चलाता है जो इसे रोकता है और उसे मुक्त करता है। कोई त्रुटि नहीं, कुछ भी नहीं।"EOSError 1400 - अवैध विंडो हैंडल" के संभावित कारण
लेकिन किसी कारण से जब मैं एप्लिकेशन बंद करता हूं और मैंने धागा चलाया है तो मुझे EOSError 1400 - Invalid window handle
मिलता है। मैंने ऑनक्लोज़ प्रक्रिया को तोड़ दिया है और केवल एक चीज जो मैं करता हूं, एक आईएनआई फाइल सहेज रही है, उसमें कोई त्रुटि नहीं है, जब मैं आगे का पता लगाता हूं (एफ 7 का उपयोग करके), end.
"कॉलिंग" के बाद, मैं बहुत अंत (Application.Run; end.
) पर जाता हूं मुझे त्रुटि मिलती है, इसलिए कोड को बढ़ाने के लिए कोई विशिष्ट पंक्ति नहीं है।
मुझे उम्मीद है कि प्रश्न कुछ हद तक स्पष्ट है और मुझे उम्मीद है कि यह हल करने योग्य है, क्योंकि केवल त्रुटि को अनदेखा करना थोड़ा अशुद्ध लगता है।
धन्यवाद inb4
उत्तर
यह त्रुटि मेरे लिए हुई जब निष्पादित एक धागा की विधि कहा जाता था, इसे इस तरह देखा:
procedure TRunThread.Execute;
var (...)
begin
while not Terminated do begin
(...)
MainForm.Memo1.Lines.Add('Some text'); // Even though this call worked fine during
//the application running, it caused errors on shutting the app down.
// For acccessing GUI elements, it's necessary to use Synchronize()
(...)
end;
end;
क्या आप सुनिश्चित हैं कि आपका बिंदु अब इस बिंदु पर नहीं चल रहा है ("एप्लिकेशन.रुन के अंत में")? – gabr
मैं हूं। चाहे थ्रेड चल रहा हो या नहीं, मैं एप्लिकेशन को बंद कर दूं, मुझे यह त्रुटि मिलती है। _ हाँ, और मैं "-1" के लायक क्या था? मैंने अपनी समस्या का वर्णन करने की कोशिश की और साथ ही मैं कर सकता था ._ –
क्यों डाउनवोट? यह एक दयालु और वैध सवाल है। मैंने इसे डाउनवोट के लिए तैयार करने के लिए वोट दिया। ये अन्यायपूर्ण डाउनवॉट हाल ही में नियंत्रण से बाहर हो रहे हैं: -/ – jpfollenius