C# WinApp อยากรู้การใส่ parameter ใน ตัวแปรที่เป็น object ครับว่าเราจะรู้ได้ยังไงว่าต้องใส่อะไรบ้าง
Code (C#)
private void CheckFile(object obj)
{
string s_E = ""; string t_E = "";
string Fol_EMK;
int _sngEMK = 0;
string FolderCode = (string)((object[])obj)[0];
int min = (int)((object[])obj)[1];
int max = (int)((object[])obj)[2];
Fol_EMK = PathKARA + "\\Songs\\MIDI\\EMK\\" + FolderCode;
MIDI_Dll.MIDI_Dll.CreatePath(Fol_EMK);
int i = min;
while (true)
{
s_E = list[i].ToLower();
do
{
t_E = Fol_EMK + "\\" + FolderCode + string.Format("{0:00000}", _sngEMK) + ".emk";
_sngEMK++;
} while (System.IO.File.Exists(t_E));
try
{
System.IO.File.Move(s_E, t_E);
if (sngRun > 0)
{
double t = DateTime.Now.TimeOfDay.TotalSeconds - startCounter;
double strt = (double)((list.Count - sngRun) * t / sngRun);
this.lblEMKDetail.Invoke(new Action(() =>
{
this.lblEMKDetail.Text =
"Check File: " + s_E + " to " + t_E + Environment.NewLine +
"File: " + sngRun + "/" + (list.Count - 1) + Environment.NewLine +
"Completion Ratio:" + string.Format("{0:0.0000}", Convert.ToDouble(100 * (double)sngRun / (double)(list.Count - 1))) + " %" + Environment.NewLine +
"Speed:" + string.Format("{0:0.00}", ((double)sngRun / t)) + "file/s" + Environment.NewLine +
"Elapsed time:" + MIDI_Dll.MIDI_Dll.Time(t) + Environment.NewLine +
"Remaining time:" + MIDI_Dll.MIDI_Dll.Time(strt);
}));
}
this.progressBar2.Invoke(new Action(() => { this.progressBar2.Value = sngRun; }));
}
catch { }
sngRun++;
System.Threading.Thread.Sleep(10);
i++;
if (i > max + 1 || i > list.Count)
{
{ return; }
}
}
}
}
อย่างโค๊ดของ private void CheckFile(object obj)
ผมประกาศตัวแปรเป็น object ไว้พอจะใช้ก็เพิ่มแบบนี้ครับ
Code (C#)
for (int i = 0; i < maxThread; i++)
{ //ตัวอย่าการใช้งาน CheckFile
new System.Threading.Thread(CheckFile).Start(new object[] { Convert.ToChar(65 + i).ToString(), i * sngPer, (i + 1) * sngPer });
}
สงสัยว่าเราจะรู้ได้ยังไงว่า ถ้าเราไม่ได้เขียนโค๊ดขึ้นมาเอง(เอาของคนอื่นมาใช้แบบหน้าด้าน ๆๆ) เราจะต้องใส่ข้อมูลใน object obj เท่าไหร ยังไง ประเภทไหนบ้าง ถึงจะพอ
หรือถ้าไม่ได้
สามารถเปลี่ยนตรง
Code (C#)
private void CheckFile(object obj)
หรือ
Code (C#)
new System.Threading.Thread(CheckFile).Start(new object[] { Convert.ToChar(65 + i).ToString(), i * sngPer, (i + 1) * sngPer });
ได้บ้างไม๊ครับTag : .NET, Win (Windows App), VS 2012 (.NET 4.x), Windows
Date :
2015-07-20 18:47:00
By :
lamaka.tor
View :
822
Reply :
1
Date :
2015-07-23 09:38:39
By :
lamaka.tor
Load balance : Server 00