طبق بیان یکی از اساتید .net که یادم نیست کدومشون بود در کتابش گفت که خواندن هر فایلی تا فضای 1GB رو می شه سنکرون انجام داد. یعنی یکهو متد Read رو صدا بزنیم. و برای فضاهای بالاتر بهتر است که آسنکرون کار کنیم. برای سنکرون خوندن مثل زیر می شه کد نوشت:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا 500 بایت رو خوندیم. اگر هم بخواهیم آسنکرون کار کنیم می تونیم این طوری بنویسیم:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اون struct رو برای این تعریف کردم که خود فایل هم بتونم بعدا هندل کنم(مثلا ببندمش.) اما اگر نمی خواهید فایل رو ببندید می تونید در آرگومان BeginRead فقط ba رو منتقل کنید.
یادآوری:تا زمانی که خواندن کامل نشده باشد متد ReadComplete اجرا نخواهد شد.
چون اضافه کردن به ListBox توسط یک ریسمان دیگر انجام می شود فراموش نکنید که یا invoke کنید و یا اینکه مثل زیر خطای تداخل Thread ها را غیر فعال کنید:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خیلی مشتاقم بدونم 500 بایت اول فایل wav به چه درد می خوره ؟
موفق باشید.