থ্রেড.Sleep () হিমায়িত হয়

এখানে একটি স্নিপেট আছে

kit.insertHTML(doc, doc.getLength(), "Hello", 0, 0, null);
try{
Thread.sleep(1000);
}catch(Exception e){}

আমি HTMLEditorKit() এবং HTMLDocument() একটি টেক্সটবাক্স হিসাবে ব্যবহার করছি। টেক্সট বক্সে "হ্যালো" দেখানো উচিত তবে দ্বিতীয়বার অপেক্ষা করুন, যখন আমি এটি চেষ্টা করি, এটি এক সেকেন্ড অপেক্ষা করে তারপর "হ্যালো" শব্দটি রাখে যা আমি চাই না।

আমি নিশ্চিত নই কেন এই কারণ আমি লজিক্যাল ক্রমে এটি করা। যদি কেউ এই সম্পর্কে সাহায্য করতে পারেন, এটা মহান হবে।

সম্পাদনা করুন:

কেউ কি বিকল্প জানেন, তাই আমি "বিলম্ব" ধরণের প্রভাব ব্যবহার করতে পারি?

1
যোগ সম্পাদিত
মতামত: 1
আবার, একটি সুইং টাইমার ব্যবহার করুন। আমার উত্তর এ লিঙ্ক দেখুন
যোগ লেখক Hovercraft Full Of Eels, উৎস

3 উত্তর

কখনো থ্রেড সোড (... )কে সুইং ইভেন্ট থ্রেডের মাধ্যমে কল করবেন না কারণ এটি ইভেন্ট থ্রেডকে ঘুমাতে ঘুরিয়ে দেবে। যেহেতু এই থ্রেড সব সুইং পেইন্টিং এবং ব্যবহারকারীর মিথস্ক্রিয়া জন্য দায়ী, এই আপনার অ্যাপ্লিকেশন ঘুম ঘুম হবে।

আপনি যদি চান যে সমস্ত ডিসপ্লেতে বিলম্ব হয় তবে একটি সুইং ব্যবহার বিবেচনা করুন। টাইমার

অন্যদিকে যদি আপনার ইভেন্ট থ্রেডটি দীর্ঘস্থায়ী কাজ দ্বারা আপোস করা হচ্ছে, তাহলে একটি SwingWorker ব্যবহার করে ব্যাকগ্রাউন্ডে কাজটি করুন (যেমন Guillaume 1+ দ্বারা তার প্রস্তাবিত)।

6
যোগ
SwingTimer চমত্কার ভাল কাজ, ধন্যবাদ
যোগ লেখক user1357159, উৎস
গ্রেট - খুশি এটি সাহায্য!
যোগ লেখক Hovercraft Full Of Eels, উৎস

আপনি EDT (ইভেন্ট ডিসপ্যাচিং থ্রেড) এ ঘুম নিচ্ছেন । আপনি এই অবস্থা এড়ানোর প্রকৃতপক্ষে shouls, এটি UI freezes।

এই পরিস্থিতিটি এড়াতে, পরিবর্তে একটি সুইংওয়ার্কার ব্যবহার করুন অথবা HFOE দ্বারা প্রস্তাবিত হিসাবে, একটি সুইং টাইমার ব্যবহার

3
যোগ
হাঁ। 1+ এবং সম্মত হন।
যোগ লেখক Hovercraft Full Of Eels, উৎস
@ হোভারক্রাফটফেলস +1 আপনাকে খুব ;-)
যোগ লেখক Guillaume Polet, উৎস

Thread.sleep is a long running task. When you a running such a task in the EDT it blocks all repaint requests from being executed. All repaint requests which are pending and which were sent during the sleep phase are queued for future processing.

ফলস্বরূপ যখন EDT স্লিপ </কোড> ফেজ থেকে বের হয়ে আসে তখন এই ধরনের সমস্ত পুনশ্চবার অনুরোধ (যদি coalingcing সক্ষম হয় যা ডিফল্ট প্রোপার্টি হয়) একটি একক পুনরাবৃত্তির সাথে সংগৃহীত হয় যা সঞ্চালিত হয়। Coalcing সক্রিয় করা হয় না, তাহলে সব সারি অনুরোধ ক্রমান্বয়ে মধ্যে সঞ্চালিত হয় মধ্যে কোন সময় ফাঁক ছাড়া। ফলে এটি মনে হয় যে UI আপডেট হয়নি।

পরিস্থিতি সংশোধন করার জন্য একটি SwingTimer ব্যবহার করুন যা সময় নির্দিষ্ট নির্দিষ্ট সময়ের পরে বা SwingWorker এর পরে ট্রিগার করে।

0
যোগ