private async void TestSearchBtn_Click(object sender, EventArgs e) { await Task.Run(() => { foreach (var key in _keysForSearch) { var rehashSearchRes = _rehashBasedTable.Search(key); var chainMethodSearchRes = _ChainMethod.Search(key); var rehashSearchData = new DataForSearch { Key = key, Contais = rehashSearchRes.Item1, Value = rehashSearchRes.Item1 ? (int?)rehashSearchRes.Item2 : null, Time = rehashSearchRes.Item3 }; var chainMethodSearchData = new DataForSearch { Key = key, Contais = chainMethodSearchRes.Item1, Value = chainMethodSearchRes.Item1 ? (int?)chainMethodSearchRes.Item2 : null, Time = chainMethodSearchRes.Item3 }; _rehashMethodSearchingData.Add(rehashSearchData); _chainMethodSearchingData.Add(chainMethodSearchData); } var rehashTotalTime = _rehashMethodSearchingData.Select(x => x.Time).Sum() / 1e9; var chainMethodTotalTime = _chainMethodSearchingData.Select(x => x.Time).Sum() / 1e9; Invoke((MethodInvoker)(() => label3.Text = $"Рехеширование. Поиск - {rehashTotalTime} c.")); Invoke((MethodInvoker)(() => label4.Text = $"Метод цепочек. Поиск - {chainMethodTotalTime} c.")); }); UpdateDataGrids(); testSearchBtn.Enabled = false; }
private async void TestSearchBtn_Click(object sender, EventArgs e) { await Task.Run(() => { foreach (var key in _keysForSearch) { var rehashSearchRes = _rehashBasedTable.SearchValue(key); var combinedSearchRes = _combinedMethodBasedTable.SearchValue(key); var rehashSearchData = new DataForSearch { Key = key, Contais = rehashSearchRes.Contains, Value = rehashSearchRes.Contains ? (int?)rehashSearchRes.Value : null, Time = rehashSearchRes.Time }; var combinedSearchData = new DataForSearch { Key = key, Contais = combinedSearchRes.Contains, Value = combinedSearchRes.Contains ? (int?)combinedSearchRes.Value : null, Time = combinedSearchRes.Time, Iterations = combinedSearchRes.Iterations }; _rehashMethodSearchingData.Add(rehashSearchData); _combinedMethodSearchingData.Add(combinedSearchData); } var rehashTotalTime = _rehashMethodSearchingData.Select(x => x.Time).Sum() / 1e9; var combinedTotalTime = _combinedMethodSearchingData.Select(x => x.Time).Sum() / 1e9; Invoke((MethodInvoker)(() => label3.Text = $"Рехеширование. Поиск - {rehashTotalTime} c.")); Invoke((MethodInvoker)(() => label4.Text = $"Комбинированный метод. Поиск - {combinedTotalTime} c.")); }); UpdateSearchLogs(); testSearchBtn.Enabled = false; }