簡體   English   中英

減慢功能

[英]Slowing down a function

我有一個winforms應用程序,可以在兩個公司(數據庫)之間進行選擇,並訪問他們的文章/項目以阻止或取消阻止它們。 我是通過SAP B1 SDK來完成的。 該函數有效,它可以按預期完成所有操作。 “問題”是用戶不喜歡它的速度(用戶,對嗎?),他們要求我使其速度變慢並添加一些視覺功能(進度條,鎖定/解鎖圖片,其他標簽),所以他們知道哪個文章被阻止/取消阻止。

這是我鎖定/解鎖文章的功能:

private void items()
        {
           string[] lines = textBox1.Lines;

           for (int i = 0; i <= lines.GetUpperBound(0); i++)
           {
               oItem = ((SAPbobsCOM.Items)(oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oItems)));
               oItem.GetByKey(lines[i]);
               if (comboBox1.Text == "Lock")
               {
                   oItem.Frozen = BoYesNoEnum.tYES;
               }
               else if (comboBox1.Text == "Unlock")
               {
                   oItem.Frozen = BoYesNoEnum.tNO;
               }
               lRetCode = oItem.Update();
               if (lRetCode != 0)
               {
                   oCompany.GetLastError(out lErrCode, out sErrMsg);
                   MessageBox.Show(lErrCode + " " + sErrMsg + " item: " + lines[i]);
               }
           }
        }

什么是實現這一目標的最佳和正確方法? 我嘗試使用Thread.Sleep但是經過幾次失敗的嘗試后,我找不到插入代碼行的位置,但在操作之前,之中和之后都嘗試了,但沒有成功。 任何想法/建議將不勝感激。

在這些語句oItem.Frozen = BoYesNoEnum.tYES;處發生鎖定和oItem.Frozen = BoYesNoEnum.tYES; oItem.Frozen = BoYesNoEnum.tNO; 因此,您不能從字面上“執行”該語句。 您所要做的就是在Thread.Sleep之前啟用WaitCursor ,然后進行凍結/解凍。 這不會阻止鎖定和解鎖快速進行,但是由於WaitCursor作用,用戶會覺得該過程花費了一些時間。

總結:Waitcursor啟用了1秒鍾-以獲得視覺效果,我們欺騙了用戶某些信息在幕后,但是實際上除了改變光標之外什么都沒有發生!

您可以將Thread.SleepWaitCursor使用,例如:

           if (comboBox1.Text == "Lock")
           {
               Cursor.Current = Cursors.WaitCursor;
               Thread.Sleep(1000);
               oItem.Frozen = BoYesNoEnum.tYES;
               Cursor.Current = Cursors.Default;
           }
           else if (comboBox1.Text == "Unlock")
           {
               Cursor.Current = Cursors.WaitCursor;
               Thread.Sleep(1000);
               oItem.Frozen = BoYesNoEnum.tNO;
               Cursor.Current = Cursors.Default;
           }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM