小编pol*_*ran的帖子

如何正确重置CancellationToken?

async ctp今天早上我一直在玩,并有一个简单的程序与a button和a label.点击button它开始更新label,停止button它停止写入label.但是,我不确定如何重置,CancellationTokenSource以便我可以重新启动该过程.我的代码如下:

public partial class MainWindow : Window
{
    CancellationTokenSource cts = new CancellationTokenSource();
    public MainWindow()
    {
        InitializeComponent();
        button.Content = "Start";
    }

    async Task DoWork(CancellationToken cancelToken)
    {
        int i = 0;
        while (!cancelToken.IsCancellationRequested)
        {
            label.Content = i++.ToString();
            await TaskEx.Delay(50, cancelToken);
        }
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        if (button.Content == "Start")
        {
            button.Content = "Stop";
            DoWork(cts.Token);
        }
        else
        {
            button.Content = "Start";
            cts.Cancel(); …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous async-await cancellationtokensource cancellation-token

41
推荐指数
3
解决办法
2万
查看次数

使用具体类型而不是界面是否更好的性能?

我遇到了一些规则(建议)使用混凝土ListDictionary,而不是IListIDictionary给予,显示通过该接口访问样本测试是相当慢一点.例如,将10000个值添加到列表然后Count在列表上执行10亿次表示通过接口执行此操作比通过具体类执行它慢28倍.即,通过具体类需要80ms,通过界面需要2800ms,这表明它通过界面的速度非常慢.鉴于此,使用具体类是合理的.有没有理由说接口这么慢?(可能更多的是针对那些了解更多关于.net内部的人).

.net c# performance

15
推荐指数
3
解决办法
1297
查看次数

如何在dataview中过滤数据

我想在listview上过滤textchange事件的数据,所以我使用dataview来过滤数据.下面代码中的问题是,我在每个内部都使用dataview,这样它只检查一个只有它的最后一个值的条件,我想用数据视图检查s1中的值,剩下的值应该与listview绑定.

例如:如果我输入一个文本框,它应该列出所有项目值,以anandha kumar,anna等值开头.假设我在数组s1中保留anandha kumar和anna的值.我应该列出所有其他值,期望像listview中的数组值,如antony ect ....

protected void TextBox1_TextChanged(object sender, EventArgs e)
        {
            dvProducts = (DataView)Session["ListViewItems"];

            string serachText = EscapeLikeValue(TextBox1.Text);

            string lvValues = hdRetailCustomerGroup.Value;

            string trim = lvValues.Replace(" ", "");

            trim = trim.Replace("\r", "");

            trim = trim.Replace("\n", "");

            trim = trim.Replace("\t", "");
             string str = trim;

            string[] list = str.Split('|');


            foreach (string s1 in list)
            {
                if (s1 != string.Empty)
                {
                    dvProducts.RowFilter = "(CODE like '" + serachText + "*') AND (CODE <> '" + s1 …
Run Code Online (Sandbox Code Playgroud)

c# asp.net

10
推荐指数
2
解决办法
12万
查看次数

使用Proximity API与许多Windows/Windows Phone 8设备同时通信

是否可以使用Windows 8/Windows Phone 8 Proximity API创建一个在Windows 8(作为服务器)设备和"n"(> 1)Windows Phone 8设备之间进行通信的应用程序?

[编辑] 我的意思是同时使用NFC建立连接和Wi-Fi或蓝牙进行数据交换.

根据这篇文章:http://msdn.microsoft.com/en-us/library/windows/apps/br241210.aspx,Windows Phone 8不支持Wi-Fi Direct.它到底意味着什么?2个Windows Phone 8设备之间?

我认为它可以根据MSDN库工作:http: //msdn.microsoft.com/en-us/library/windows/apps/jj207060.aspx

此方案适用于Windows Phone 8和Windows 8设备.当点击成功时,您将返回一个可以与其他设备通信的套接字.在Windows Phone 8上,此套接字建立在TCP/IP(Wi-Fi)连接或蓝牙连接上.

有任何想法吗?

proximity nfc windows-8 windows-phone-8

6
推荐指数
1
解决办法
1018
查看次数

需要一个良好的架构来验证规则

我希望你们能给我一些好的建议.我在想如何为C#开发建立一个好的架构.我正在尽力解释情景,因为我不擅长英语:

1)两个类:Blue Bank和Red Bank

2)第三类:验证规则

3)蓝色和红色银行有几个字段(值),如AccountNumber,Amount,InvoicePeriod等......这里的示例(xml):

蓝银行

  <AccountNumber>Maria 5987593457</AccountNumber>
  <Amount>200.00</Amount>
  <InvoicePeriod>1</InvoicePeriod>
Run Code Online (Sandbox Code Playgroud)

红银行

  <AccountNumber>8529458</AccountNumber>
  <Amount>300.00</Amount>
  <InvoicePeriod>0</InvoicePeriod>
Run Code Online (Sandbox Code Playgroud)

红色/蓝色银行具有一些相同的验证规则,例如必须是数字的金额字段.但Red/Blue Banks有不同的验证规则 - AccountNumber字段在Blue Bank中必须是alphanumberic,而AccountNumber必须在Red Bank中是numberic,否则将失败.InvoicePeriod字段在Red Bank中必须为默认值1,而在Blue Bank中必须为默认值0,否则将失败.

我的想法是:

我想为不同的验证规则创建每个类的Red/Blue Bank,然后我还为Blue/Red银行所具有的相同规则创建验证类规则.

我的代码在这里:

蓝银班:

  • 验证必须为alphanumberic的AccountNumber,否则失败
  • 验证InvoicePeriod必须是默认值1否则失败

红银班:

  • 验证必须为numberic的AccountNumber,否则失败
  • 验证InvoicePeriod必须是默认值0否则失败

RulesOfValidation类

  • 验证必须是数字的金额(红色/蓝色银行类的规则相同)

这些课程如何与dictonary <,>一起使用?或者您的示例代码有什么更好的建议吗?

非常感谢您的帮助.

c# validation

4
推荐指数
1
解决办法
723
查看次数

区分联合方法不会看到其静态成员

问题似乎很愚蠢,但我真的不明白.

module Responses =
    type Failure = 
        | Problem of string 
        | Error of exn 
        | Timeout
        static member toString x = 
            match x with
            | Problem str -> sprintf "Problem %s" str
            | Error e -> sprintf "Error %s" (e.ToString())
            | Timeout -> "Timeout"
        override x.ToString() = Failure.toString x 
Run Code Online (Sandbox Code Playgroud)

错误是

      override x.ToString() = Failure.toString x;;
--------------------------------------^^^^^^^^
stdin(11,41): error FS0039: The field, constructor or member 'toString' is not defined
Run Code Online (Sandbox Code Playgroud)

原因是f#因某种原因认为Failure属于类型Microsoft.FSharp.Core.Operations.Failure

当我试着写

override x.ToString() = Responses.Failure.toString x
Run Code Online (Sandbox Code Playgroud)

我明白了 …

f# static discriminated-union

4
推荐指数
1
解决办法
545
查看次数

是否应该在列表中添加新项<>更新列表中的上一项?

我有一个StockMultibuy项目列表,正在构建这些项目的列表.列表中的某些项目我希望具有与现有项目不同的属性,因此我尝试创建项目的新实例,更改了我想要的属性,然后将其添加到列表中.我没想到会更新列表中已有的项目.这是预期的行为吗?我能做些什么来克服这个问题吗?

谢谢

StockMultibuy aNewItem = StaticLists.GetStockMultibuyForBarcode(sBarcode);

// If we've got enough items to qualify, then add a free item
if (Reward.StockItemsTaken.Count % (Reward.FreeWhenQualified + Reward.QualifyingQty)
    == Reward.QualifyingQty)
{
    aNewItem.PromoPrice = 0;
}
// Save this for later so that we know we've added a regular item
else
{
    aNewItem.PromoPrice = Convert.ToDecimal(aNewItem.Sell);
}

Reward.StockItemsTaken.Add(aNewItem);
Run Code Online (Sandbox Code Playgroud)

c#

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

"字符串*字符串"在F#中的含义是什么?

到处搜寻.使用参数查看https://github.com/fsharp/FAKE/blob/master/src/app/Fake.IIS/IISHelper.fs#L64string * string.试图在F#代码中实例化并收到错误FS0010:在表达式中此点或之前包含结构化构造.

这个世界是什么以及如何实例化这个?

f#

0
推荐指数
1
解决办法
187
查看次数