我有一些代码需要在无法建立数据库时重试,例如每次登录20次。该网站有数十个用户,这将是最好的处理方式吗?我正在考虑使用计数器,但是当多个用户同时登录时,可能需要一些线程,这是我不熟悉的。
编辑:
我在实例化Thread对象的行上得到错误''expect name expected'。这是我的代码:
private static List<Field.Info> FromDatabase(this Int32 _campId)
{
List<Field.Info> lstFields = new List<Field.Info>();
Field.List.Response response = new Field.List.Ticket
{
campId = _campId
}.Commit();
if (response.status == Field.List.Status.success)
{
lstFields = response.fields;
lock (campIdLock)
{
loadedCampIds.Add(_campId);
}
}
if (response.status == Field.List.Status.retry)
{
Thread th1 = new Thread(new ThreadStart(FromDatabase(_campId)));
FromDatabase(_campId);
}
return lstFields;
}
答案 0 :(得分:0)
我的方法是一个事件,如果计数器&lt; = 20,它会递增计数器并调用异步方法。 然后我会阻止当前线程并等待连接结果。
以线程安全的方式递增计数器
Interlocked.Increment(ref int counter);