public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Loaded += MainWindow_Loaded;
}
bool DialogResult;
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
if (MyShow())
this.Width = 56;
else
this.Width = 23;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
DialogResult = true;
}
private void button2_Click(object sender, RoutedEventArgs e)
{
DialogResult = false;
}
private bool MyShow()
{
return DialogResult;
}
}
在上面的代码中个,启动窗体后,调用MyShow方法。要求,启动后线程阻塞在MyShow那个地方,然后点击窗体中的2个按钮,根据点击不同的按钮,执行不同的结果。
这个该怎么写,如果用Lock的话,或则有更好的方法吗?
------解决思路----------------------
什么线程?阻塞什么东西?
按钮的click事件驱动不同的处理程序,这是任何一个刚学windows图形界面编程的人都会的。跟线程、阻塞扯不上半点关系啊。
------解决思路----------------------
你所谓的“Lock”,我理解你又是认为“有两个线程,在那里分别死循环着,并且阻塞着什么东西。然后根据按钮点击情况,第一个线程干点什么,或者第二个线程干点什么“。
线程根本不是这个干的。如果滥用线程,胡乱搞什么”消费者模式“,那真的是毁掉.net程序员了。
------解决思路----------------------
撸主,你问的问题哪跟哪啊?哪里有什么线程,阻塞什么?看不懂你表达的神马意思呢。
------解决思路----------------------
楼主又是不知道从哪里看到了一些名词,就来堆砌一些概念
根本就没有什么线程,也没有锁.
------解决思路----------------------
根本就没有什么线程,也没有锁.
->
我指的是你的代码里根本没有用到线程,只有一个主线程.
也没有锁.也不需要锁.
什么2个按钮点了分别执行不同的方法,你分别双击2个按钮,生成2个函数,往里写代码不就得了.
------解决思路----------------------
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Loaded += MainWindow_Loaded;
}
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
}
private void button1_Click(object sender, RoutedEventArgs e)
{
this.Width = 56;
}
private void button2_Click(object sender, RoutedEventArgs e)
{
this.Width = 23;
}
}
不要没事就瞎想什么线程,什么阻塞,什么锁.
------解决思路----------------------
你这不都是主窗体吗?你把主窗体阻塞了,哪还有后面按钮的事情?