2012-09-28 26 views
25

मैं करूंगा वास्तव में सराहना करते हैं किसी की मदद मेरा पीछा कर मामले को सुलझाने:StringBuilder.ToString() एक 'सूचकांक सीमा से बाहर' फेंक अपवाद

मैं अब और फिर निम्न अपवाद हो रही है:

सूचकांक सीमा से बाहर था। गैर-नकारात्मक और संग्रह के आकार से कम होना चाहिए। पैरामीटर नाम: चंकलेथेंथ

stringBuilder.ToString() पर।

अजीब बात यह है कि अगर मैं घड़ी में stringBuilder.ToString() डालता हूं, तो यह पूरी तरह से काम करता है।

+10

क्या यह संभव है कि आपके स्ट्रिंगबिल्डर का उपयोग किसी अन्य थ्रेड द्वारा भी किया जा रहा हो? –

+1

क्या आप स्निपिट प्रदान कर सकते हैं जो अपवाद का कारण बनता है जिसमें स्ट्रिंग बिल्डर का निर्माण कैसे किया जाता है? – deepee1

+0

स्ट्रिंगबिल्डर। ऐपेंडलाइन को घटनाओं पर बुलाया जाता है। फिर यह एक अलग धागे पर स्क्रीन पर प्रदर्शित होता है। –

उत्तर

27

ऐसा लगता है कि यह एक बहु थ्रेड मुद्दा है। मैंने थ्रेड को लॉक किया ताकि स्ट्रिंगबिल्डर को एक ही समय में बहु पहुंच को रोका जा सके।

public void AddString(string s) 
{ 
    lock(this.LockObject) 
    { 
    StringBuilder.AppendLine(s); 
    } 
}