저는 C#을 처음 사용하고 있으며 다른 하드웨어와 직렬 통신을 수행하는 코드를 작성하려고합니다. 작업을 수행하는 데 async/await를 사용하고 있습니다. 내 메소드가 class1이라는 다른 클래스에 있고 솔루션에 첨부 된 class1.cs 파일에 존재한다는 점을 감안하여 기다렸던 메소드에서 진행률 막대를 업데이트하려고합니다. XAML 코드에는 하나의 텍스트 블록, 진행률 막대 및 시작 단추가 하나 있습니다.범용 Windows 응용 프로그램에서 기다리고있는 다른 클래스의 UI를 업데이트하십시오.
"Class1"클래스의 "DummyWork"메소드에서 "progressbar1"을 어떻게 업데이트 할 수 있습니까?
이 문제에 대해 도움을 주시면 감사하겠습니다. 템플릿 코드는 다음과 같습니다.
MainPage.xaml.cs를 내용 :
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Threading.Tasks;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using System.Threading;
using uwptestapp1classes;
namespace uwptestapp1
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
textBlock.Text = string.Empty;
}
private async void startBtn_Click(object sender, RoutedEventArgs e)
{
int asyncResult = 0;
progressbar1.Value = 0;
startBtn.IsEnabled = false;
textBlock.Text += "button press log: " + startBtn.Content + " button is pressed" + Environment.NewLine;
DateTime previousTime = DateTime.Now;
asyncResult = await Task.Run(() => Class1.DummyWork(previousTime));
textBlock.Text += "Task have been done" + Environment.NewLine;
startBtn.IsEnabled = true;
}
}
}
Class1.cs의 내용 :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.UI.Xaml.Controls;
using System.Threading;
namespace uwptestapp1classes
{
public class Class1
{
public static int DummyWork(DateTime previoustime)
{
for (int i = 0; i <= 100;)
{
if ((DateTime.Now - previoustime).Milliseconds >= 500)
{
/* UI update code
* update "progressbar1.value"
*/
previoustime = DateTime.Now;
}
//delay without using task.delay
for (int myCounter = 0; myCounter < 50000000;)
{
myCounter++;
}
}
return 1;
}
}
}
여기에는 질문이 없습니다. [왜 누군가가 나를 도울 수 있습니까?]를보십시오. 실제 질문이 아닙니까?] (http://meta.stackoverflow.com/questions/284236/why-is-can-someone-help-me-not-an-actual-question) – BradleyDotNET
@BradleyDotNET 의견을 보내 주셔서 감사합니다. 내 정확한 질문에 의해 업데이 트되었습니다. – Arash
[이에 대한 많은 연구를하지 않은 것 같습니다] (https://www.google.com/?gws_rd=ssl#q=uwp+progress+bar+from+task+c%23). 너? – Romasz