public void GetHangReportProducesDgmlWithMethodNameRequestingMainThread()
    {
        var mainThreadRequested = new ManualResetEventSlim();

        Task.Run(delegate
        {
            JoinableTaskFactory.MainThreadAwaiter awaiter = this.Factory.SwitchToMainThreadAsync().GetAwaiter();
            awaiter.OnCompleted(delegate { /* this anonymous delegate is expected to include the name of its containing method */ });
            mainThreadRequested.Set();
        });
        mainThreadRequested.Wait();
        IHangReportContributor contributor = this.Context;
        HangReportContribution?report      = contributor.GetHangReport();

        this.Logger.WriteLine(report.Content);
        var dgml = XDocument.Parse(report.Content);
        IEnumerable <string>?collectionLabels = from node in dgml.Root.Element(XName.Get("Nodes", DgmlNamespace)).Elements()
                                                where node.Attribute(XName.Get("Category"))?.Value == "Task"
                                                select node.Attribute(XName.Get("Label"))?.Value;

        Assert.Contains(collectionLabels, label => label.Contains(nameof(this.GetHangReportProducesDgmlWithMethodNameRequestingMainThread)));
    }
 public ConfiguredMainThreadAwaiter(JoinableTaskFactory.MainThreadAwaiter mainThreadAwaiter, bool alwaysYield)
 {
     _mainThreadAwaiter = mainThreadAwaiter;
     _alwaysYield       = alwaysYield;
 }
Esempio n. 3
0
 internal ControlMainThreadAwaiter(JoinableTaskFactory.MainThreadAwaiter awaiter, IDisposable?disposable)
 {
     _awaiter    = awaiter;
     _disposable = disposable;
 }
Esempio n. 4
0
 internal ControlMainThreadAwaiter(JoinableTaskFactory.MainThreadAwaiter awaiter, IDisposable disposable, CancellationToken cancellationToken)
 {
     _awaiter           = awaiter;
     _disposable        = disposable;
     _cancellationToken = cancellationToken;
 }
Esempio n. 5
0
 public MainThreadAwaiter(JoinableTaskFactory.MainThreadAwaiter awaiter)
 {
     this.awaiter = awaiter;
 }
Esempio n. 6
0
 public VsMainThreadAwaiter(JoinableTaskFactory.MainThreadAwaiter awaiter)
 {
     _awaiter = awaiter;
 }