上面一个题,求数学题解答器

求解答 学习搜索引擎 | 错误页面新手刚看到ReadWriterLock被书上的一道题困扰到了 求大神解答_c#吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:50,046贴子:
新手刚看到ReadWriterLock被书上的一道题困扰到了 求大神解答收藏
读者可以试着编写一个包含4个线程的多线程应用程序,其中的两个线程向一个文本框中写入信息,另外两个线程从该文本框中读取信息分别显示在各自对应的两个文本框中,利用ReadWriterLock类实现多线程之间的同步。using Susing System.Collections.GponentMusing System.Dusing System.Dusing System.Lusing System.Tusing System.Windows.Fusing System.Tnamespace ReadWriteLock{
public partial class 读写锁的应用 : Form
public 读写锁的应用()
InitializeComponent();
CheckForIllegalCrossThreadCalls =
private Thread thread1 =
private Thread thread2 =
private Thread thread3 =
private Thread thread4 =
private ReaderWriterLock rwl = new ReaderWriterLock();
private void thread1Show()
while (true)
rwl.AcquireWriterLock(1000);
richTextBox1.Text += &a&;
Thread.Sleep(60);
catch (ThreadAbortException)
rwl.ReleaseWriterLock();
rwl.ReleaseWriterLock();
private void thread2Show()
while (true)
rwl.AcquireWriterLock(1000);
richTextBox1.Text += &A&;
Thread.Sleep(60);
catch (ThreadAbortException)
rwl.ReleaseWriterLock();
rwl.ReleaseWriterLock();
private void thread3Show()
while(true)
rwl.AcquireReaderLock(1000);
foreach (char ch1 in richTextBox1.Text)
if (ch1 == 'a')
richTextBox2.Text = ch1.ToString();
Thread.Sleep(60);
catch(ThreadAbortException)
rwl.ReleaseReaderLock();
rwl.ReleaseReaderLock();
private void thread4Show()
while (true)
rwl.AcquireReaderLock(1000);
foreach (char ch1 in richTextBox1.Text)
if (ch1 == 'A')
richTextBox3.Text = ch1.ToString();
Thread.Sleep(60);
catch(ThreadAbortException)
rwl.ReleaseReaderLock();
rwl.ReleaseReaderLock();
private void btnStart_Click(object sender, EventArgs e)
new Thread(new ThreadStart(thread1Show));
new Thread(new ThreadStart(thread2Show));
new Thread(new ThreadStart(thread3Show));
new Thread(new ThreadStart(thread4Show));
thread1.Start();
thread2.Start();
thread3.Start();
thread4.Start();
btnStart.Enabled =
btnStop.TabStop =
private void btnStop_Click(object sender, EventArgs e)
thread1.Abort();
thread2.Abort();
thread3.Abort();
thread4.Abort();
btnStop.Enabled =
btnStart.Enabled =
private void 读写锁的应用_FormClosing(object sender, FormClosingEventArgs e)
if (thread1 != null) thread1.Abort();
if (thread2 != null) thread2.Abort();
if (thread3 != null) thread3.Abort();
if (thread4 != null) thread4.Abort();
}}这是我的代码
我还是搞不懂ReaderWriterLock怎么用 我感觉是不是1个读线程和1个写线程为一组交替切换?还是别的意思
还有就是分别向2个文本框输入不同的内容用foreach好像也有问题
卡了好久了
望大神解答
大神们快来啊
这么长的代码,没有心思看。不过可以解释一下多线程的读和写,并不是交替进行,读和写都是随机的,但是用了锁,那么在写的同时不能读,读的同时不能写,就这样。至于读和写是次序,是随机的。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或[求助]有线网通过无线路由器后只能上内网,外网连不上,求解答?
原来一直好好的,今天一开机,只能登录乐乎、上海大学首页等网站了,上百度等外网,会自动跳到学校信息网络设置页面,是什么问题啊?
那就重新设置一下呗。
禁用无线路由的地址分配功能,或者为路由MAC地址申请ip
从新设置下呗,把路由器mac重置
改成交换机得了。。。
lz,路由模式的话,你应该为路由器的mac申请ip地址,自助服务修改原mac即可。
是否决解?如果学校提供的先接在WAN口请按如下几点检测:
1.查看之前为路由器申请的IP地址是否存在,不存在的话请重新申请
2、若1中存在,则可在IP地址管理里面尝试重新绑定MAC功能
3、重启一下路由器
4、如果3还不行那么的进入路由器里面看个究竟
现在已经好了,谢谢各位同学和老师!
问题标题:
[求助]有线网通过无线路由器后只能上内网,外网连不上,求解答?
可输入300个汉字求解答 学习搜索引擎 | 错误页面求解答 学习搜索引擎 | 错误页面

我要回帖

 

随机推荐