Beispiel #1
0
        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;
        }
Beispiel #2
0
        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;
        }