2009-08-11 17 views
5

मेरे कार्यक्रम में मेरे पास कुछ बहुत लंबा कार्य है, जो जीयूआई (डब्ल्यूपीएफ) से बाधित होना चाहिए। थ्रेडिंग आर्किटेक्चर के बारे में कोई सलाह?सी # में थ्रेडिंग। इंटरप्टेबल कार्य

यह कार्य इस तरह के कोड के साथ एन धागे की तरह दिखता है:

public void DoLongOperation() 
{ 
    for(int i=beginPoint; i<endPoint; i++) 
    { 
     doSomethingStupid(dataArray[i]); 
    } 
} 

उत्तर

10

BackgroundWorker पर एक नजर डालें; विशेष रूप से, WorkerSupportsCancellationWPF Multithreading: Using the BackgroundWorker and Reporting the Progress to the UI पर आप क्या करना चाहते हैं इसका एक उदाहरण है।

+0

यह एक अच्छा विकल्प है। +1 –

+0

हाँ, वास्तव में उपयोगी और सरल। मैं इस वर्ग के बारे में जानता था, लेकिन इसका इस्तेमाल कभी नहीं किया। धन्यवाद – ALOR

-1

ठीक है, आप या तो यह देखने के लिए जांच सकते हैं कि इसे रोकना चाहिए या नहीं, प्रत्येक लूप पुनरावृत्ति, एक बूल की जांच करके। या बस। अंतराल(), और अपवाद को संभालें (यदि किसी भी समय इसे मारना सुरक्षित है)।

0

। थ्रेड पर)() एक अच्छा तरीका नहीं है, एक अच्छा तरीका है जैसा कि आप अपने उत्तर में कहते हैं।

संबंधित मुद्दे