同步线程

Ismael123.

成员
加入
2016年5月13日
消息
14
编程经验
1-3
我有一个追加100的线程"_"进入文件,另一个100"-"进入同一文件。任何想法如何同步它们,以便获得_-_-_-et等输出..我猜解决方案在c#中将相似
C#:
Imports System.ThreadingImports System.IO


Module Module1
    Dim NesneMutex As New Mutex
    Dim fs As New FileStream("C:\\Data\\threadTesti.dat", FileMode.Append, FileAccess.Write)
    Sub alt()
        For i = 0 To 100
            fs.WriteByte(Asc("_"))
        Next
    End Sub


    Sub tire()
        For i = 0 To 100
            fs.WriteByte(Asc("-"))
        Next
    End Sub


    Sub Main()
        Dim t1 As New Thread(New ThreadStart(AddressOf alt))
        Dim t2 As New Thread(New ThreadStart(AddressOf tire))
        t1.Start()
        t2.Start()
        Console.ReadKey()
    End Sub
End Module
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,681
地点
悉尼,澳大利亚
编程经验
10+
这是你真正想做的还是只是一种学习如何同步线程的方法?如果是后者,那么你似乎只是要求我们为你做工作。您在研究中发现了什么以及当您试图实施它时发生了什么?
 

Ismael123.

成员
加入
2016年5月13日
消息
14
编程经验
1-3
我研究了VB.NET考试和1个主题是线程。我试图解决徒劳的许多问题,希望得到一个提示或看到这个的解决方案将帮助我理解和解决其他线程问题。我真的没有看到你对你的回复是有用的
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,681
地点
悉尼,澳大利亚
编程经验
10+
而且我真的没有看到你对你的回复是有用的

然后你不是很难。你想没有得到任何回复,还是愿意知道为什么你没有得到任何回复?如果这是你想要在一个真实的应用程序中做的事情,那么我就会建议它,因为它不是什么应该做的事情。如果它是一个创意的例子,以获得学习,那么这是不同的,但是在同步线程上有很多信息已经是你应该做的是首先研究自己,然后使用该信息,然后在这里发布工作。否则,您只是要求我们为您完成工作。对你这样做的没有规则,但很多人不喜欢喜欢这样的人,并期望你第一次努力。你可能会遇到一名准备简单地为你编写代码的人,但如果你不这样做,你就不会知道为什么如果没有人告诉你。也许不要那么敏感,接受批评是一种正常的事情。我们都做错了,所以我们都应该期望现在又来批评。
 

Ismael123.

成员
加入
2016年5月13日
消息
14
编程经验
1-3
然后你不是很难。你想没有得到任何回复,还是愿意知道为什么你没有得到任何回复?如果这是你想要在一个真实的应用程序中做的事情,那么我就会建议它,因为它不是什么应该做的事情。如果它是一个创意的例子,以获得学习,那么这是不同的,但是在同步线程上有很多信息已经是你应该做的是首先研究自己,然后使用该信息,然后在这里发布工作。否则,您只是要求我们为您完成工作。对你这样做的没有规则,但很多人不喜欢喜欢这样的人,并期望你第一次努力。你可能会遇到一名准备简单地为你编写代码的人,但如果你不这样做,你就不会知道为什么如果没有人告诉你。也许不要那么敏感,接受批评是一种正常的事情。我们都做错了,所以我们都应该期望现在又来批评。

为什么你认为我没有做任何研究?几乎我发现的一切都与阻止其他线程有关。我挣扎着这个问题和其他几个,但无法解决它。冰球在这里寻找一些帮助,因为我试图学习。只是给出一个提示不会神奇地解决我的所有问题,但它至少至少帮助我了解线程同步。顺便说一句,我回应了你的批评是因为许多程序员认为像我这样的初学者不做任何努力。相信我,如果我在我的研究中发现任何有用的东西,我从未发布过。你只能回复说尝试使用这个,我本可以从那里继续
感谢至少试图了解我
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,681
地点
悉尼,澳大利亚
编程经验
10+
为什么你认为我没有做任何研究?
我不。我只能通过我所看到的,我没有看到任何尝试实现任何东西。
几乎所有我发现的一切都与阻塞其他线程有关,而一个是在工作的同时。
这正是你想在这里做的事情。一个线程是其工作,然后被阻止,而另一个线程是其工作,反之亦然。

您已在您的代码中获得了互斥责任。您是否阅读了互斥级的文档?它包含一个代码示例。它显示了如何强制多个线程一次执行操作。将其应用于一次执行操作的两个线程不足,这并不大部分飞跃。
 

Ismael123.

成员
加入
2016年5月13日
消息
14
编程经验
1-3
我不。我只能通过我所看到的,我没有看到任何尝试实现任何东西。

这正是你想在这里做的事情。一个线程是其工作,然后被阻止,而另一个线程是其工作,反之亦然。

您已在您的代码中获得了互斥责任。您是否阅读了互斥级的文档?它包含一个代码示例。它显示了如何强制多个线程一次执行操作。将其应用于一次执行操作的两个线程不足,这并不大部分飞跃。



我在这里发布之前尝试使用互斥锁,一个同音和监视器,但我只能暂停第一个线程并完成第二个线程。我想这是因为这种多线程仍然让我混淆。我在发布之前删除了所有这些,以便拥有更清洁的代码。也许这就是为什么你认为我只是懒惰,在我看来的是你应该在知道之前的情况前所做的情况,你应该制作。

我也认为这篇文章是更广泛的研究的一部分。正如我之前所说的那样,我的目标不仅仅是解决这个问题,而是用它作为线程同步的示例
 
Last edited:

约翰

C#论坛主持人
工作人员
加入
2011年4月23日
消息
1,141
地点
挪威
编程经验
10+
post 1的代码是vb.net,但这是一个c#论坛。我建议 Visual Basic .NET论坛 如果您正在使用VB.NET开发。

顺便说一句,我的建议是使用两个autoreetevent对象。每个线程都等待自己的autoreetevent,写一个线程信号后,另一个线程信号,反之亦然。
 
最佳 底部