Progress در Write/Read آسنکرون
سلام.
من جایی در برنامه این طوری نوشتم:
کد:
System.IO.FileStream fs=new System.IO.FileStream("ADR", System.IO.FileMode.Open);
byte[] someByte=new byte[350000000];
fs.BeginRead(someByte, 0, someByte.Length, ReadFinisher, fs);
کد:
public static void ReadFinisher(IAsyncResult res) {
(res.AsyncState as System.IO.FileStream).Close();
}
حتی در جاهایی تا 7 برابر این آرایه می بایست خوانده یا نوشته شود. مشکل زمان بر بودن است. لذا یک Progress برای کاربر الزامی است. اما این متد ها فیدبکی برای Progress نمی دهند.
نت رو گشتم چیزی پیدا نکردم. یکی یه جا گفته بود باید از متد System.Reactive.Linq.Observable.FromAsyncPattern استفاده کنی.
من نتونستم بفهمم چطوری....
فضای نام Reactive رو باید دانلود کنید از
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شاید راه حل هم این نباشد.(من اصلا از کلاس هاش سردر نیاوردم.)
شاید هم بگید که این حجم اطلاعات اصلا اشتباه هست که این گونه کار شود. مسلما حرف شما را قبول دارم. اما فرض کنید که راهی نداریم........
ممنون.