我有一些代码,当它不能建立数据库连接时,需要重试,例如每次登录20次。这个网站有几十个用户,处理这个问题的最好方法是什么?我正在考虑使用计数器,但由于多个用户将同时登录,因此可能需要一些线程,这我并不熟悉。
编辑:
我在实例化Thread对象的行上得到错误“method 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;
}发布于 2011-09-09 19:46:45
我的方法是一个事件,它会递增计数器,并在计数器<= 20时调用异步方法,然后阻塞当前线程并等待连接结果。
若要以线程安全方式递增计数器,请使用
Interlocked.Increment(ref int counter);https://stackoverflow.com/questions/7360364
复制相似问题