मैं डेल्फी 6 आईडीई में थ्रेड सूची विंडो में एक अच्छा उपयोगकर्ता के अनुकूल नाम दिखाना चाहता हूं। मुझे डेल्फी 6 में ऐसा करने के लिए वेब पर नीचे दिया गया कोड मिला है, जहां तक मुझे पता है कि संस्करण में SetThreadName() को मूल रूप से कार्यान्वित नहीं किया गया है। मैं इसे अपने धागे की निष्पादन() विधि से बुलाता हूं। मुझे पता है कि इसे बुलाया जा रहा है क्योंकि अपवाद उठाए जाने पर आईडीई पॉप अप हो जाता है। हालांकि, जब मैं थ्रेड सूची (Ctrl + Alt + T) में देखता हूं, तो मुझे सेट नाम दिखाई नहीं देता है। मैं बस सामान्य थ्रेड आईडी, राज्य, स्थिति, और स्थान कॉलम देखता हूं, और कुछ नहीं।क्या डेल्फी 6 में धागे का नाम सेट करने का यह सही तरीका है?
धागे के नाम प्रकट होने के लिए मुझे अलग-अलग करने की क्या ज़रूरत है? साथ ही, क्या किसी को यह पता है कि आईडीईई को RaiseException लाइन पर रुकने से कैसे रोकें? मेरे पास कार्यक्रम में बहुत सारे धागे हैं और हर बार जब मैं प्रोग्राम चलाता हूं तो आईडीई पॉप बार एन पॉपिंग करना परेशान करता है।
मुझे पता है कि मैं डेल्फी अपवादों को रोकने से आईडीई को अक्षम कर सकता हूं, लेकिन मैं सामान्य रूप से चाहता हूं और मैं इसे बंद करना नहीं चाहता और हर बार धागे का एक नया सेट बनाया जाता है।
Named threads in Delphi - what is that for?
procedure SetThreadName_delphi(const Name: string);
type
TThreadNameInfo =
record
RecType: LongWord;
Name: PChar;
ThreadID: LongWord;
Flags: LongWord;
end;
var
info:TThreadNameInfo;
begin
// This code is extremely strange, but it's the documented way of doing it!
info.RecType := $1000;
info.Name := PChar(Name);
info.ThreadID := $FFFFFFFF;
info.Flags := 0;
try
RaiseException($406D1388, 0,
SizeOf(info) div SizeOf(LongWord), PDWord(@info));
except
end;
end;
मेरा मानना है कि धागा नाम केवल डेल्फी 2010 और उसके बाद में दिखाई देता है। – Nat
नहीं, डी 6 के बाद थ्रेड नामकरण समर्थित है। –
स्क्रैच कि - डेल्फी 7. –