emad4000
جمعه 28 شهریور 1393, 16:27 عصر
سلام
من یک کامپوننت نوشتم که مدام داده دریافت می کنه و بعد از پروسس خاصی اونا رو به شکل خاصی نمایش میده
این کامپوننت رو کامپایل کردم و به استفاده کننده دادم
MyComponent cmp = new MyComponent();
cmp.addData(...);
حالا مسئله ای که وجود داره اینه که استفاده کننده گاهاً حجم عظیم داده ای رو به کامپوننت می فرسته و برنامه تو مدت چندثانیه ای که داده داره وارد میشه قفل می کنه
من اگر داخل تابع اصلی از کامپومننتم یه Thread بسازم و از اونجا داده ها رو توسط اون Thread وارد کنم هیچ مشکلی حل نمیشه، چون به هرحال تا زمان ورود داده به داخل کامپوننت همون قفل شدن رو داریم.
من برای حل این مشکل یه نمونه کد خارج از کامپوننت نوشتم که یه Thread می سازه و داخل این Thread اطلاعات رو به برنامه می فرسته
اینجوری هیچ مشکلی پیش نمیاد و داده ها یک به یک که وارد میشن پردازش و نمایش داده میشن
Thread t = new Thread(myFunction);
t.start();
...
public void myFunction()
{
MyComponent cmp = new MyComponent();
cmp.addData(...);
}
یعنی خود استفاده کننده باید این مسئله رو مدیریت کنه.
ولی نمونه برنامه هایی رو دیدم که مثل کامپوننت من کار می کنن، ولی از بیرون بدون ساخت نخ میشه بهشون داده پاس کرد و اونا بدون هیچ مشکلی کار می کنن
می خواستم بپرسم نظر شما چیه و من چطور می تونم این کار رو انجام بدم؟؟؟
من یک کامپوننت نوشتم که مدام داده دریافت می کنه و بعد از پروسس خاصی اونا رو به شکل خاصی نمایش میده
این کامپوننت رو کامپایل کردم و به استفاده کننده دادم
MyComponent cmp = new MyComponent();
cmp.addData(...);
حالا مسئله ای که وجود داره اینه که استفاده کننده گاهاً حجم عظیم داده ای رو به کامپوننت می فرسته و برنامه تو مدت چندثانیه ای که داده داره وارد میشه قفل می کنه
من اگر داخل تابع اصلی از کامپومننتم یه Thread بسازم و از اونجا داده ها رو توسط اون Thread وارد کنم هیچ مشکلی حل نمیشه، چون به هرحال تا زمان ورود داده به داخل کامپوننت همون قفل شدن رو داریم.
من برای حل این مشکل یه نمونه کد خارج از کامپوننت نوشتم که یه Thread می سازه و داخل این Thread اطلاعات رو به برنامه می فرسته
اینجوری هیچ مشکلی پیش نمیاد و داده ها یک به یک که وارد میشن پردازش و نمایش داده میشن
Thread t = new Thread(myFunction);
t.start();
...
public void myFunction()
{
MyComponent cmp = new MyComponent();
cmp.addData(...);
}
یعنی خود استفاده کننده باید این مسئله رو مدیریت کنه.
ولی نمونه برنامه هایی رو دیدم که مثل کامپوننت من کار می کنن، ولی از بیرون بدون ساخت نخ میشه بهشون داده پاس کرد و اونا بدون هیچ مشکلی کار می کنن
می خواستم بپرسم نظر شما چیه و من چطور می تونم این کار رو انجام بدم؟؟؟