PDA

View Full Version : در مورد توابع CALLBACK



RED-C0DE
شنبه 26 اسفند 1385, 11:43 صبح
سلام...
در مورد مفهوم استفاده از callback ها و شرایط استفاده و مزیتهاشون در #C اطلاعات می خواستم. (در ضمن گشتم توی فروم #C ، چیزی پیدا نکردم )

یه سوال در همین رابطه داشتم و اینکه من یک کلاس دارم به اسم Timer و (مسلما) کارش اینه که مثل یک تایمر عمل می کنه :

class ClassTimer
{
// Private fields :
int _itsHour;
int _itsMin;
int _itsSec;
DateTime _itsStartTime;
DateTime _itsEndTime;
DateTime _itsDuration;
string _itsDurationString;
bool _TimerStopped;

// Public Constructors :
public ClassTimer()
{ }
public ClassTimer(int Hour, int Min, int Sec,DateTime StartTime ,DateTime EndTime,DateTime Duration)
{
this._itsHour = Hour;
this._itsMin = Min ;
this._itsSec = Sec;
this._itsStartTime = StartTime ;
this._itsEndTime= EndTime ;
this._itsDuration = Duration ;
}

// Public Properties :
...
...
...
این قسمت اولیه کلاسمه . خوب، حالا من می خوام که در هر ثانیه مقدار فیلد itsSec_ رو یک واحد افزایش بدم و در 60 ثانیه مقدار فیلد itsMin_ و الی آخر. من برای این کار در برنامه اصلیم از یک کامپوننت Timer استفاده کردم (چون راه دیگه ای بلد نیستم) که در هر 1 ثانیه متد ()Tick از شی کلاس Timer رو فراخوانی می کنه تا این کار رو انجام بده. اما یک جا در مورد توابع Callback و اینکه می تونن بصورت خودکار یک روند (پروسه) رو در دل خودشون فراخوانی کنند چیزی شنیدم (بقیش رو که دیگه نشنیدم)
حالا می می خوام بدونم آیا می تونم از این توابع (Callback) در کلاس خودم استفاده کنم؟؟
و یا هر راه دیگه ای که بشه ؟؟ (در واقع بهینه تر باشه بجای استفاده مستقیم از کامپوننت Timer)

با تشکر ...

Amir Oveisi
شنبه 26 اسفند 1385, 13:56 عصر
منظورت TimerCallBack ه؟

RED-C0DE
شنبه 26 اسفند 1385, 14:14 عصر
حقیقتش همونطور که گفتم خودم اطلاعات زیادی راجع بهش ندارم. و این رو که گفتی رو هم نمی دونم همونیه که من می خوام یا یک مفهوم دیگه است.
توی پست اولم گفتم که می خوام چه کار کنم. درست. حالا می خوام بدونم برای اون کار از چه روشی باید استفاده کنم. و این TimerCallback رو هم اگه یه توضیحی بدی ممنوم می شم.

Amir Oveisi
شنبه 26 اسفند 1385, 14:16 عصر
http://msdn2.microsoft.com/en-us/library/system.threading.timercallback.aspx

RED-C0DE
شنبه 26 اسفند 1385, 15:22 عصر
مفید بود.ممنون.

ARA
جمعه 03 فروردین 1386, 02:40 صبح
یکی از call back هایی که خیلی بدرد بخوره و زیاد استفاده میشه در سوکت پروگرامینگ زمانی که که async استفاده میکنی مثلا begin recieve در اینجا سوکت را آماده دریافت میکنی زمانی که داده ها رسید ، متدی که با callback مشخص کردی فراخوانی میشود

شاید بهتره بگم از مهمترین کاربردهاش همونجا باشه به سوکت پروگرامینگ یک نگاهی کن

ar.shirazi
یک شنبه 05 فروردین 1386, 23:00 عصر
دقیقا !!! برای سوکت پروگرمینگ هم در این سایت (http://www.shiraziOnline.net) میتونین اطلاعاتی بدست بیارین ، به فارسی روان !