मैं एक विधि भागो जो स्क्रीन पर चित्रों को स्थानांतरित करने के माना जाता है के साथ एक कुत्ता वर्ग है:रनिंग तरीके इसके साथ ही
public bool Run()
{
Point p = PictureBoxDog.Location;
while(p.X < 530)
{
int movement = Randomizer.Next(0, 3);
p.X += movement;
PictureBoxDog.Location = p;
}
if (Location == 4) //Incomplete section.
return true;
else
return false;
}
इस विधि है, जिसमें 4 कुत्ते ऑब्जेक्ट का निर्माण होगा एक बटन क्लिक करें घटना और से कहा जाता है प्रत्येक ऑब्जेक्ट रन विधि को कॉल करता है:
private void button1_Click(object sender, EventArgs e)
{
Dog dog1 = new Dog(pictureDog1);
Dog dog2 = new Dog(pictureDog2);
Dog dog3 = new Dog(pictureDog3);
Dog dog4 = new Dog(pictureDog4);
dog1.Run();
dog2.Run();
dog3.Run();
dog4.Run();
}
समस्या यह है कि प्रत्येक विधि एक-एक करके निष्पादित होती है, एक साथ नहीं। मैं चाहता हूं कि प्रत्येक विधि एक ही समय में चलें। अगर मैं थोड़ी देर के वक्तव्य को हटा देता हूं, तो सभी विधियां एक ही समय में निष्पादित होती हैं, लेकिन थोड़ी देर के साथ, वे एक के बाद एक निष्पादित करते हैं। इस समस्या को ठीक करने के तरीके पर कोई सुझाव बहुत सराहना की जाती है। जबकि पाश के बिना चलाने के लिए विधि:
public bool Run() //Dog1.Run()
{
Point p = PictureBoxDog.Location;
int movement = Randomizer.Next(0, 30);
//Location += movement;
p.X += movement;
PictureBoxDog.Location = p;
if (Location == 4) //Incomplete code.
return true;
else
return false;
}
एक टाइमर जोड़ें और वहां से विधियों को कॉल करें। तब आपको थ्रेड के साथ गड़बड़ नहीं करनी पड़ेगी, जो यूआई तत्वों के साथ समस्याएं पैदा करती है यदि आप नहीं जानते कि आप क्या कर रहे हैं। –