У меня проблема с этим кодом в области комментариев "повесить форму"
моя программа будет зависать там !!!!в чем проблема ??
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsFormsApplication28
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
BackgroundWorker backgw = new BackgroundWorker();
private void button1_Click(object sender, EventArgs e)
{
backgw.DoWork += new DoWorkEventHandler(k_DoWork);
ParameterizedThreadStart start = new ParameterizedThreadStart(startthread);
System.Threading.Thread u;
int i = 0;
while (i < 100)
{
//u = new System.Threading.Thread(start);
//u.Start(i); //1.with thread way
backgw.RunWorkerAsync(i); //2.with backgw way
Thread.Sleep(1000);
lock (y)
{
Thread.Sleep(1000);
}
lock(h)
i++;
}
}
delegate void j(int h);
j b;
object h = new object();
object y = new object();
void startthread(object m)
{
Monitor.Enter(h);
Monitor.Enter(y);
p1((int)m);
Monitor.Exit(h);
}
void p1(int h)
{
b = delegate(int q)
{
label1.Text = string.Format("Step is :{0}", h.ToString());
};
Monitor.Exit(y);
label1.Invoke(b); //hang the form????
}
void k_DoWork(object sender, DoWorkEventArgs e)
{
Monitor.Enter(h);
Monitor.Enter(y);
p1((int)e.Argument);
Monitor.Exit(h);
}
}
}