Skip to Main Content
C# Cookbook, 2nd Edition
book

C# Cookbook, 2nd Edition

by Jay Hilyard, Stephen Teilhet
January 2006
Intermediate to advanced content levelIntermediate to advanced
1184 pages
43h 23m
English
O'Reilly Media, Inc.
Content preview from C# Cookbook, 2nd Edition
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Granting Multiple Access to Resources with a Semaphore
|
1041
18.10 Granting Multiple Access to Resources
with a Semaphore
Problem
You have a resource you want only a certain number of clients to access at a given
time.
Solution
Use a semaphore to enable resource-counted access to the resource. For example, if
you have an Xbox and a copy of Halo2 (the resource) and a development staff eager
to blow off some steam (the clients), you have to synchronize access to the Xbox.
Since the Xbox has four controllers, up to four clients can be playing at any given
time. The rules of the house are that when you die, you give up your controller.
To accomplish this, create a class called
Halo2Session with a Semaphore called _Xbox
like this:
public class Halo2Session
{
// A semaphore that simulates a limited resource pool
//
private static Semaphore _Xbox;
// Player handles for Xbox
private static string [] _handles = new string [9]{"Igor",
"AxeMan",
"Frosty",
"Dr. Death",
"HaPpyCaMpEr",
"Executioner",
"FragMan",
"Beatdown",
"Stoney"
};
The _handles array is an array of player names that will be used. In order to get
things rolling, you need to call the
Play method, shown in Example 18-7, on the
Halo2Session class.
Example 18-7. Play method
public static void Play( )
{
// An Xbox has four controller ports so ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C# Cookbook

C# Cookbook

Joe Mayo
C# Cookbook

C# Cookbook

Stephen Teilhet, Jay Hilyard
Head First C#, 4th Edition

Head First C#, 4th Edition

Andrew Stellman, Jennifer Greene

Publisher Resources

ISBN: 0596100639Supplemental ContentCatalog PageErrata