Trying out threads in C# | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
+ 1

Trying out threads in C#

Can anyone give me some feedback on this simple code with bouncing O:s as I am trying to understand how threads work in C#. https://code.sololearn.com/ca17A21A12a5/#cs

28th Mar 2021, 8:41 PM
Joakim Eriksson
Joakim Eriksson - avatar
8 Answers
+ 2
At first i must to say, SoloLearn playground does not support thread. A thread is defined as the execution path of a program. Each thread defines a unique flow of control. If your application involves complicated and time consuming operations, then it is often helpful to set different execution paths or threads, with each thread performing a particular job. Threads are lightweight processes. One common example of use of thread is implementation of concurrent programming by modern operating systems. Use of threads saves wastage of CPU cycle and increase efficiency of an application. So far we wrote the programs where a single thread runs as a single process which is the running instance of the application. However, this way the application can perform one job at a time. To make it execute more than one task at a time, it could be divided into smaller threads.
30th Mar 2021, 5:50 PM
hossein B
hossein B - avatar
+ 2
But i not recommended to use thread directly. At past we use backgroundworker. We often use background threads when a time-consuming process needed to be executed in the background without affecting the responsiveness of the user interface. This is where a BackgroundWorker component comes into play.
30th Mar 2021, 5:56 PM
hossein B
hossein B - avatar
+ 2
It's now recommended to use task. NET framework provides Threading.Tasks class to let you create tasks and run them asynchronously. A task is an object that represents some work that should be done. The task can tell you if the work is completed and if the operation returns a result, the task gives you the result there are differences between task and thread
30th Mar 2021, 6:01 PM
hossein B
hossein B - avatar
+ 2
The Thread class is used for creating and manipulating a thread in Windows. A Task represents some asynchronous operation and is part of the Task Parallel Library, a set of APIs for running tasks asynchronously and in parallel. The task can return a result. There is no direct mechanism to return the result from a thread. Task supports cancellation through the use of cancellation tokens. But Thread doesn't. A task can have multiple processes happening at the same time. Threads can only have one task running at a time. We can easily implement Asynchronous using ’async’ and ‘await’ keywords. A new Thread()is not dealing with Thread pool thread, whereas Task does use thread pool thread. A Task is a higher level concept than Thread.
30th Mar 2021, 6:01 PM
hossein B
hossein B - avatar
+ 2
I recommend you to use Visual Studio
31st Mar 2021, 5:36 PM
hossein B
hossein B - avatar
+ 1
Thank you very much! Now I must find time for some more crazy experiments in order to really understand tasks vs threads!! Really good to know that some things such as threads are not supported here in the playground!
31st Mar 2021, 4:10 PM
Joakim Eriksson
Joakim Eriksson - avatar
0
First issue is that I cannot run it in sololearn playground. What am I missing? Second issue as I run it in Visual Studio the threads seem to disturb eachother. How can that be solved?
29th Mar 2021, 4:19 PM
Joakim Eriksson
Joakim Eriksson - avatar