【发布时间】:2021-07-17 01:19:54
【问题描述】:
我在哪里可以将我的await 关键字放在这行搜索文本文件中的字符串的代码中?
当搜索正在进行时,我的应用程序会冻结。
private async void BtnCheckLogs_OnClick(object sender, RoutedEventArgs e)
{
_rowCount = await CheckInLogs();
Header.Text = $@"Not found tag Count: {_rowCount}";
}
private async Task<int> CheckInLogs()
{
IList<ManualReadTag> result = new List<ManualReadTag>();
var notFoundTag = 0;
if (_rowCount == 0)
{
MessageBox.Show("There are no tag to compare from the logs");
return 0;
}
else
{
var dataTable = ToDataTable(_manualReadTagList);
if (dataTable != null)
{
string[] lines = null;
string currentAddress = null;
foreach (DataRow row in dataTable.Rows)
{
var plaza = row[0].ToString();
var lane = row[1].ToString();
var tagNumber = row[3].ToString();
var originalTrxnDtime = row[2];
var trxnDtime = Convert.ToDateTime(row[2]).ToShortDateString();
var year = trxnDtime.Split('/')[2];
var month = trxnDtime.Split('/')[1].PadLeft(1,'0');
var day = trxnDtime.Split('/')[0].PadLeft(1, '0'); ;
var obj = JObject.Parse(json);
var search = $@"{plaza}.Lanes.{lane}.Ip";
var ipAddress = (string)obj.SelectToken(search);
using (new ImpersonateUser("IETCADMIN", "", "M1nion$"))
{
var dir = @"i\RFIDServiceLogs";
var fileName = $@"\\{ipAddress}\{dir}\{year}\{month}\{day}\RfidHandlerSystemLogs.txt";
var pattern = tagNumber;
var isFound = false;
try
{
using (var reader = new StreamReader(fileName))
{
string currentLine;
while ((currentLine = reader.ReadLine()) != null)
{
if (currentLine.Contains(tagNumber))
{
isFound = true;
break;
}
}
}
if (!isFound)
{
var mrt = new ManualReadTag
{
Plaza = Convert.ToInt16(plaza),
Lane = Convert.ToInt16(lane),
Tag_Number = tagNumber,
Trxn_DTime = Convert.ToDateTime(originalTrxnDtime)
};
result.Add(mrt);
notFoundTag++;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
ViewingGridFromComparison.ItemsSource = result;
}
}
return notFoundTag;
}
【问题讨论】:
-
你是如何调用这个方法的?
-
是的,我愿意 ====> private async void BtnCheckLogs_OnClick(object sender, RoutedEventArgs e) { _rowCount = await CheckInLogs(); Header.Text = $@"未找到标签计数:{_rowCount}"; }
-
请参阅编辑。
标签: c#