async Task<object> Scalar(string sql) { if (!inited) await Init(); object o = null; //are.WaitOne(); sqlcmd.CommandText = sql; if (sqlconn.State == ConnectionState.Open) { var hold = true; } await sqlconn.OpenAsync(); await sqlcmd.ExecuteScalarAsync(); sqlconn.Close(); //are.Set(); return o; }
调用方
url_lst.ForEach(async (item) => { var uri = new Uri(item); if (!await q_ing.Contains(uri) && !await q_ed.Contains(uri)) await q_ing.En(uri); });
url_lst中是网址列表,q_ing与q_ed是包括最开始那个方法的类。但有时候会直接跳过sqlconn.close();不知道咋回事。
sqlcmd.ExecuteScalarAsync(); 抛出异常就不执行下面的语句了吧。