में कोको जीयूआई चलाना मेरे पास कोको उपयोगकर्ता इंटरफ़ेस विकसित करने में एक gui/threading संबंधित समस्या है। आवेदन इस तरह बनाया गया है:गैर-मुख्य धागे
मुख्य थ्रेड (# 1): तर्क, भार प्लगइन्स, आदि को पार्स करता
गुई धागा (#?): शुरूआत जीयूआई, घटनाओं, आदि संभालती इसकी जीयूआई धागा ।
कोको ढांचा गैर थ्रेड सुरक्षित है, लेकिन एक नियम लागू करता है, जीयूआई मुख्य धागे पर चलना चाहिए। यह जांचने के लिए एक दावा का उपयोग किया जाता है। इस के चारों ओर जाने की कोशिश करने के लिए मैंने इसे चलाने के बाद रन विधि (नीचे कोड) लागू किया - http://cocoawithlove.com/2009/01/demystifying-nsapplication-by.html - मार्गदर्शिका। लेकिन मुझे कुछ याद आ रही है। एक खिड़की खोला जाता है, लेकिन खाली रहता है (पूरी तरह से सफेद)। हालांकि अगर मैं मुख्य धागे में कॉल करता हूं तो यह पूरी तरह से काम करता है।
तो मूल रूप से मुझे यह पता लगाने की आवश्यकता है कि क्या गुम है।
- (void)run
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[self finishLaunching];
shouldKeepRunning = YES;
do
{
[pool release];
pool = [[NSAutoreleasePool alloc] init];
NSEvent *event =
[self
nextEventMatchingMask:NSAnyEventMask
untilDate:[NSDate distantFuture]
inMode:NSDefaultRunLoopMode
dequeue:YES];
[self sendEvent:event];
[self updateWindows];
} while (shouldKeepRunning);
[pool release];
}
- (void)terminate:(id)sender
{
shouldKeepRunning = NO;
}
ऐसा लगता है कि आपको केवल उन चीज़ों को उलट देना चाहिए जिनके लिए आप अपने धागे का उपयोग कर रहे हैं। ढांचे से लड़ना क्यों? –
क्योंकि मैं प्रोग्राम की प्लगइन आर्किटेक्चर से लड़ना नहीं चाहूंगा ... लेकिन मुझे लगता है कि मुझे इस पर स्वीकार करना होगा ... – OCarlos