小编sup*_*erd的帖子

如何在 C# ASP NET Core 中的后台服务中使用 Mediator?

我正在尝试使用 Mediator 实现后台服务 QueuedBackground 服务。

到目前为止,我能够实现队列,但无法执行调解器。

界面

public interface IBackgroundTaskQueueService
    {
        void QueueBackgroundWorkItem(object workItem, CancellationToken token);

        Task<object> DequeueAsync(
            CancellationToken cancellationToken);
    }
Run Code Online (Sandbox Code Playgroud)

执行

public class BackgroundTaskQueueService : IBackgroundTaskQueueService
    {
        private readonly ConcurrentQueue<(object,CancellationToken)> _workItems =
            new ConcurrentQueue<(object,CancellationToken)>();

        private SemaphoreSlim _signal = new SemaphoreSlim(0);

        public void QueueBackgroundWorkItem(object workItem, CancellationToken token)
        {
            if (workItem == null)
            {
                throw new ArgumentNullException(nameof(workItem));
            }

            _workItems.Enqueue((workItem,token));
            _signal.Release();
        }

        public async Task<object> DequeueAsync( CancellationToken cancellationToken)
        {
            await _signal.WaitAsync(cancellationToken);
            _workItems.TryDequeue(out var workItem);
            return workItem.Item1;
        }
    }
Run Code Online (Sandbox Code Playgroud)

后台服务

public class QueuedHostedService …
Run Code Online (Sandbox Code Playgroud)

c# mediator cqrs asp.net-core

8
推荐指数
1
解决办法
6334
查看次数

Xamarin 标签单击更改复选框状态仅 Xaml

我正在尝试更改 Xamairn 中复选框的状态。

我的 Xaml 代码

<StackLayout Orientation="Horizontal">
    <CheckBox VerticalOptions="Start"
        IsChecked="{Binding IsChecked,Mode=TwoWay}">
        <CheckBox.Margin>
            <OnPlatform x:TypeArguments="Thickness">
                <On Platform="iOS" Value="0,-10,0,0" />
                <On Platform="Android, WinPhone, Windows" Value="0,-5,0,0" />
            </OnPlatform>
        </CheckBox.Margin>
    </CheckBox>
    <Label VerticalTextAlignment="Center" VerticalOptions="Start"
        Text="{Binding Text}">
        <Label.GestureRecognizers>
            <TapGestureRecognizer>

            </TapGestureRecognizer>
        </Label.GestureRecognizers>
    </Label>
</StackLayout>
Run Code Online (Sandbox Code Playgroud)

我知道我以前做过这个,但我忘记了。

我必须在 TapGestureRecognizer 中添加一个 setter 或其他东西,以使 Checkbox IsChecked=True 和 IsChecked=False 当它为 True 时

xaml xamarin xamarin.forms

3
推荐指数
1
解决办法
1739
查看次数

标签 统计

asp.net-core ×1

c# ×1

cqrs ×1

mediator ×1

xamarin ×1

xamarin.forms ×1

xaml ×1