0

我们如何限制 .net 库的用户和/或线程数?

我们希望为不同的用户组提供不同的库版本:1)单用户:最多 1 个用户,1 个线程

2) 多用户,最多 50 个用户和/或线程 例如,此版本可容纳 50 个用户,每个 1 个线程,或 25 个用户,每个 2 个线程

3) 多用户,最多 100 个用户和/或线程 .. 等等。

我们如何使用 c# 以最简单的方式做到这一点?赛琳娜

4

1 回答 1

2

定义一个信号量并在其上同步:

static readonly SemaphoreSlim semaphore = new Semaphore(50);

...

//before your library does anything
semaphore.Wait(TimeSpan.FromSeconds(120)); //timeout to prevent deadlocks

幸运的是,你需要的一切都内置在这个类中。

您可能应该添加等待超时,否则您可能会导致死锁,并且您的客户会认为您的库不可靠。如果等待超时,您可能应该只允许访问。

于 2013-08-03T14:34:10.677 回答