PDA

View Full Version : نوشتن Thread در سی شارپ



alimooghashang
چهارشنبه 02 دی 1388, 17:51 عصر
با سلام
من میخوام برای پروژه سیستم عامل از سی شارپ استفاده کنم
و مسئله نویسندگان و خوانندگان رو با استفاده از نخ ها و سمافور بنویسم!!!
لطفا راهنمایی کنید که چطوری Thread بنویسم
با تشکر:لبخندساده:

hakelberfin
پنج شنبه 03 دی 1388, 01:38 صبح
using System.Threading;

این نخی هست که تابعی بنام
OpenFileDialog
رو فراخوانی میکنه


Thread ShowOpenFileDialog = new Thread(this.OpenFileDialog);
if (ShowOpenFileDialog.ThreadState == ThreadState.Unstarted)
{
ShowOpenFileDialog.SetApartmentState(ApartmentStat e.STA);
ShowOpenFileDialog.Start();
}
else if (ShowOpenFileDialog.ThreadState == ThreadState.Stopped)
{
ShowOpenFileDialog.Start();
ShowOpenFileDialog.Join();
}
}
catch (Exception exp)
{
ShowOpenFileDialog.Abort();
}


اینم کد تابع
OpenFileDialog


#region OpenFileDialog
public void OpenFileDialog()
{
OpenFileDialog OpenFileDialog = new OpenFileDialog();
OpenFileDialog.Filter ="Image files" +
" (*.gif,*.jpg,*.jpeg,*.bmp,*.wmf,*.png)" +
"|*.gif;*.jpg;*.jpeg;*.bmp;*.wmf;*.png|All" +
" files (*.*)|*.*";
OpenFileDialog.FilterIndex = 1;
OpenFileDialog.Title = "Open Picture Files";
OpenFileDialog.InitialDirectory = "c:\\picture";
if (OpenFileDialog.ShowDialog() == DialogResult.OK)
{
this.textBoxName.Text = string.Empty;
this.textBoxComment.Text = string.Empty;
Image Image = Image.FromFile(OpenFileDialog.FileName);
this.pictureBox.Image = Image;

}
}
#endregion

alimooghashang
پنج شنبه 03 دی 1388, 07:36 صبح
مرسی
میشه قسمت های ShowOpenFileDialog یعنی توابعش رو بگید چکار میکنند؟
و catch چه کاری انجام میده؟
با تشکر

Open-Source
پنج شنبه 03 دی 1388, 09:18 صبح
try-catch : اگر خطایی در برنامه (در بدنه try) رخ دهد قسمت Catch فراخوانی میشود.

راستی یه سوال این نوشتن join لازمه؟؟؟!!!!!:متفکر: