barman_kian
سه شنبه 11 تیر 1398, 18:32 عصر
سلام دوستان
من بعد از کلی جستجو باز هم متوجه نشدم چطوری میشه به صورت صحیح از background worker استفاده کرد
به طور مثال الان من از این کد دارم استفاده می کنم برای ارسال فایل به یک کانال تلگرامی :
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Picture Files|*.jpg";
ofd.FileName = String.Empty;
DialogResult result = ofd.ShowDialog();
if (result == DialogResult.OK)
{
filename = System.IO.Path.GetFileName(ofd.FileName);
path = System.IO.Path.GetDirectoryName(ofd.FileName);
byte[] file = System.IO.File.ReadAllBytes(path + "" + filename);
telegram.file_send(file, filename);
}
خب این کد به درستی کار می کنه اما وقتایی که فایل بزرگه اتفاقی که میفته اینه که برنامه هنگ می کنه تا زمانیکه پروسس کامل بشه
الان من میخوام دو تا چیز رو یاد بگیرم ...
اول اینکه اگر بشه با استفاده از background worker این عملیات رو انجام بدم و وضعیت پروسس کار رو هم توی یک progress bar نشون بدم
دوم اینکه برای زمان هایی که نمی خوام زیادی کاربر درگیر بشه یک پیام بدم که کار انجام شد و در واقع کار خودش در پس زمینه انجام بشه و کاربر رو معطل نکنه
ممنون میشم راهنمایی کنید تا قدم به قدم کار جلو بره
خودم کلی جستجو کردم به نتیجه مطلوب نرسیدم
من بعد از کلی جستجو باز هم متوجه نشدم چطوری میشه به صورت صحیح از background worker استفاده کرد
به طور مثال الان من از این کد دارم استفاده می کنم برای ارسال فایل به یک کانال تلگرامی :
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Picture Files|*.jpg";
ofd.FileName = String.Empty;
DialogResult result = ofd.ShowDialog();
if (result == DialogResult.OK)
{
filename = System.IO.Path.GetFileName(ofd.FileName);
path = System.IO.Path.GetDirectoryName(ofd.FileName);
byte[] file = System.IO.File.ReadAllBytes(path + "" + filename);
telegram.file_send(file, filename);
}
خب این کد به درستی کار می کنه اما وقتایی که فایل بزرگه اتفاقی که میفته اینه که برنامه هنگ می کنه تا زمانیکه پروسس کامل بشه
الان من میخوام دو تا چیز رو یاد بگیرم ...
اول اینکه اگر بشه با استفاده از background worker این عملیات رو انجام بدم و وضعیت پروسس کار رو هم توی یک progress bar نشون بدم
دوم اینکه برای زمان هایی که نمی خوام زیادی کاربر درگیر بشه یک پیام بدم که کار انجام شد و در واقع کار خودش در پس زمینه انجام بشه و کاربر رو معطل نکنه
ممنون میشم راهنمایی کنید تا قدم به قدم کار جلو بره
خودم کلی جستجو کردم به نتیجه مطلوب نرسیدم