-
Home
- Ti dsp/bios lab
- Lab 5
- Microsoft visual basic queue
The module is a lab assignment to help you better understand the very basics of Microsoft Visual Basic queues.
Introduction
This lab module will help you become familiar with the basics of queues in Microsoft Visual Basic. The exercises are written assuming you are using Visual Basic 2005 and the .NET Framework version 2.0 (or later). Some older versions will work the same, but you may need to figure out some differences. It should work with newer version also.
Module prerequisites
You should complete the Visual Basic Threads and Semaphores lab before this one.
Labratory
Part 1
- In this part you will just put some items on a queue and then take them off and print them.
- Start up Visual Studio and create a new Visual Basic project.
- In the Form1 class make a queue variable and then a synchronized queue.
- In the
Form1_Load
method put the following objects on the queue:
- The string "Hello"
- The string "World"
- The number 23
- The string "Twenty Three"
- Now make a for loop that iterates using the
Count
property of the queue.
- Inside the loop, dequeue items from the queue and print them to the console.
- Run your program and record the results.
Part 2
- In this part you will create two threads where one thread will write to a queue and the other will take the items off and print them. No synchronization will be done in this part. The reading thread will need to keep checking to see if there is anything on the queue.
- Start up Visual Studio and create a new Visual Basic project.
- In the Form1 class make a queue variable and then a synchronized queue. Use the synchronized queue.
- Make two threads in the Form1 class and start them up in the
Form1_Load
method.
- In the method for the first thread:
- make a counter variable
- make a loop that loops forever
- in the loop increment the counter
- in the loop put the counter value on the queue
- In the method for the second thread:
- make a loop that loops forever
- in the loop make an if statement that checks the count property of the queue
- if the count value is not zero, take an element off the queue and print it
- if the count value is zero, print a statement that says there was nothing on the queue
- Run your program and record the results.
Part 3
- In this part you will create two threads where one thread will write to a queue and the other will take the items off and print them. Synchronization will be done in this part. The reading thread will wait until there is something on the queue then take all the elements off and print them. The writing thread will signal the reading thread when it puts something on the queue.
- Start up Visual Studio and create a new Visual Basic project.
- In the Form1 class make a queue variable and then a synchronized queue. Use the synchronized queue.
- In the Form1 class make an
AutoResetEvent
event variable that will be used to synchronize the two threads.
- Make two threads in the Form1 class and start them up in the
Form1_Load
method.
- In the method for the first thread:
- make a counter variable
- make a loop that loops forever
- in the loop: increment the counter, put the counter value on the queue, print a statement telling what was written, signal the
AutoResetEvent
event with the
Set
method
- In the method for the second thread:
- make a loop that loops forever
- in the loop print a statement saying that the task is about to wait
- have the thread wait for the
AutoResetEvent
event by calling the
WaitOne
method
- after the
WaitOne
call, make another while loop that keeps removing items from the queue as long as the count is greater than zero
- print the value of the element taken off the queue to the console
- Run your program and record the results.
Part 4
- This uses the code from the previous part.
- After writing the value to the queue, have the first thread sleep for 100 ms using the command
Thread.Sleep(100)
- Run your program and record the results.
Source:
OpenStax, Ti dsp/bios lab. OpenStax CNX. Sep 03, 2013 Download for free at http://cnx.org/content/col11265/1.8
Google Play and the Google Play logo are trademarks of Google Inc.