小编Wai*_*Lee的帖子

从Parallel.ForEach抛出时未处理的OperationCanceledException

我试图允许取消Parallel.ForEach循环.根据这篇MSDN文章,这是可能的,我正在关注他们的编码.

// Tokens for cancellation 
ParallelOptions po = new ParallelOptions();
po.CancellationToken = cts.Token;

try
{
    Parallel.ForEach(queries, po, (currentQuery) =>
    {
        // Execute query
        ExecuteQuery(currentQuery);

        // Throw exception if cancelled 
        po.CancellationToken.ThrowIfCancellationRequested(); // ***
    }); 
}
catch (OperationCanceledException cancelException)
{
    Console.WriteLine(cancelException.Message);
}
Run Code Online (Sandbox Code Playgroud)

但是,当我cts.Cancel();从用户可访问的函数调用时,应用程序在标有上述星号的行上崩溃并出现错误:

System.OperationCanceledException was unhandled by user code
  Message=The operation was canceled.
  Source=mscorlib
  StackTrace:
   at System.Threading.CancellationToken.ThrowIfCancellationRequested()
   at CraigslistReader.SearchObject.<>c__DisplayClass7.<bw_DoWork>b__5(Query currentQuery) in {PATH}:line 286
   at System.Threading.Tasks.Parallel.<>c__DisplayClass2d`2.<ForEachWorker>b__23(Int32 i)
   at System.Threading.Tasks.Parallel.<>c__DisplayClassf`1.<ForWorker>b__c()
InnerException: 
Run Code Online (Sandbox Code Playgroud)

我有异常处理程序,所以我不明白崩溃.有任何想法吗?

c# wpf exception-handling parallel.foreach

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

例外不是冒泡

我试图抓住抛出的异常,但它没有冒泡到它被调用的地方.它突然陷入InsertNewUser困境,说道

"PeakPOS.exe中出现类型'System.Exception'的例外,但未在用户代码中处理"

如果我点击调试器继续,它会转到一个被调用的文件,App.g.i.cs并在我不理解的行上断开,但与休息时的调试有关.该应用程序在此之后终止.

为什么在重新抛出然后重新捕获和处理(待处理)时异常未处理?


AccessViewModel.cs

public void SaveNewUser(Popup popup)
{
    UserAccounts.Add(TempUser);

    string salt = PeakCrypto.GenerateSalt();
    string hash = PeakCrypto.GenerateHashedPassword(Password + salt);
    try
    {
        PeakDB.InsertNewUser(TempUser, salt, hash);
    }
    catch (Exception e)
    {
        //TODO notify user that new account could not be saved
    }

    CreateNewAccount();

    if (popup != null)
        popup.IsOpen = false;
}
Run Code Online (Sandbox Code Playgroud)

PeakDB.cs

public static async void InsertNewUser(UserAccount user, String salt, String hash)
{
    var db = await DatabaseHelper.GetDatabaseAsync();

    try
    {
        using (var userStatement = await db.PrepareStatementAsync( …
Run Code Online (Sandbox Code Playgroud)

c# exception-handling try-catch

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

如何通过android中的意图选择几种类型的文件?

我将选定的文件上传到服务器,但我知道我想restrick用户只选择文档文件(.doc,.pdf等)和图像文件.

现在我的代码适用于所有文件,它提取uri的所有文件,所以请告诉我如何限制用户只选择特定类型的文件.

这是我选择任何文件的代码.

Intent i=new Intent();
i.setType("*/*");
i.setAction(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(Intent.createChooser(i, "abc"),requestCode);
Run Code Online (Sandbox Code Playgroud)

android file android-intent

7
推荐指数
2
解决办法
1万
查看次数

如何实现通信Activity-Service

我有以下情况:

我有一个服务,定期检查互联网上的新数据,

  • 当新数据可用时,它们将被下载并保存在sqlite上.
  • 当保存到db完成时,服务广播一个intent,以便活动知道从db中提取新数据.

用户可能想要请求立即更新...

...在这种情况下,我使用Messenger来请求服务查找新数据

这是问题所在:

用户被通知请求正在进行,但可能需要一段时间,可能会失败,永远不会返回...

目前我收到一条消息(使用Messenger)从服务返回到活动通知请求的结果,或者,如果我没有消息,在x秒后我通知用户请求不成功.

  1. 请问你能提出一个不同的方法吗?
  2. 我不喜欢等待消息,如果在x秒后没有收到通知用户,是否有更好的方法?

java android

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

枚举仅包含部分成员的指定值

enum只有部分列表的自定义值

public enum MyEnum
{
    FirstValue,
    SecondValue,
    ThirdValue,
    ForthValue = 1,
    FifthValue = 2
}
Run Code Online (Sandbox Code Playgroud)

当我试着strina name = (MyEnum)2;名字的时候ThirdValue.

但是当我改变enum

public enum MyEnum
{
    FirstValue = 3,
    SecondValue,
    ThirdValue,
    ForthValue = 1,
    FifthValue = 2
}
Run Code Online (Sandbox Code Playgroud)

strina name = (MyEnum)2;名字中FifthValue.

编译器(我正在使用Visual Studio 2012)是否仅在第一个具有自定义值时初始化自定义值?

如果ThirdValue在第一个例子中得到默认值2,那么怎么没有错误FifthValue = 2呢?

c# enums

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

C#库中的C#Enum

public enum在C++接口中使用C#中定义的问题..NET项目暴露给COM,以便在C++和VB遗留软件中使用.

C#代码:

namespace ACME.XXX.XXX.XXX.Interfaces.Object
{
   [Guid(".....")]
   [InterfaceType(ComInterfaceType.InterfaceIsDual)]
   [ComVisible(true)]
   public interface TestInterface
   {
       void Stub();
   }

   [ComVisible(true)]
   public enum TestEnum
   {
        a = 1,
        b = 2
   }
}
Run Code Online (Sandbox Code Playgroud)

C++代码:

编辑:在我导入tlb的项目的idl中.(importlib("\..\ACME.XXX.XXX.XXX.Interfaces.tlb"))

interface ITestObject : IDispatch
{
  [id(1), helpstring("one")]
  HRESULT MethodOne([in] TestInterface *a);

  [id(2), helpstring("two")]     
  HRESULT MethodTwo([in] TestEnum a);
}
Run Code Online (Sandbox Code Playgroud)

MethodTwo,我不断收到错误说明

在TestEnum附近除外类型规范

我假设有些东西我做得不对.MethodOne似乎正确地找到了参考.

在C++接口中引用.NET枚举对象有一些魔力吗?

c# c++ com enums

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

具有等效标识的多个程序集 .NETFramework Facades

在同一个代码分支上,我们在一台机器上成功构建,但在另一台机器上,我们得到了这个:

错误导入了具有等效标识的多个程序集:'...\src\packages\System.Xml.ReaderWriter.4.3.0\lib \net46\System.Xml.ReaderWriter.dll'和'C:\ Program Files(x86) )\参考程序集\ Microsoft\Framework.NETFramework\v4.6.2\Facades\System.Xml.ReaderWriter.dll'.删除其中一个重复的引用.

我们怎么解决?

.net c#

7
推荐指数
2
解决办法
1万
查看次数

如何将JSON对象数组反序列化为C#匿名类型?

我没有反序列化单个json对象的问题

string json = @"{'Name':'Mike'}";
Run Code Online (Sandbox Code Playgroud)

到C#匿名类型:

var definition = new { Name = ""};
var result = JsonConvert.DeserializeAnonymousType(json, definition);
Run Code Online (Sandbox Code Playgroud)

但是当我有一个数组时:

string jsonArray = @"[{'Name':'Mike'}, {'Name':'Ben'}, {'Name':'Razvigor'}]";
Run Code Online (Sandbox Code Playgroud)

我被困住了。

怎么做到呢?

c# json json.net

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

C#解构和重载

在研究C#7.x中的新功能时,我创建了以下类:

using System;
namespace ValueTuples
{
    public class Person
    {
        public string Name { get; }
        public DateTime BirthDate { get; }

        public Person(string name, DateTime birthDate)
        {
            Name = name;
            BirthDate = birthDate;
        }

        public void Deconstruct(out string name,
            out int year, out int month, out int day)
        {
            name  = Name;
            year  = BirthDate.Year;
            month = BirthDate.Month;
            day   = BirthDate.Day;
        }

        public void Deconstruct(out string name,
            out int year, out int month, 
            out (int DayNumber, DayOfWeek DayOfWeek) day) …
Run Code Online (Sandbox Code Playgroud)

c# c#-7.0

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

使用 spaCy 从动词标签中提取英语祈使语气

我想检测英语句子中动词的祈使语气。从这个问题我知道spaCy可以访问扩展的形态特征,但是当我使用它时我没有看到它们,使用spaCy版本2.1.8,Python 3.7.1:

>>> import spacy
>>> nlp = spacy.load('en_core_web_sm')
>>> doc = nlp("Show me the money!")
>>> token = doc[0]
>>> print(token, token.tag_, nlp.vocab.morphology.tag_map[token.tag_], token.pos_, token.dep_)
Show VB {74: 100, 'VerbForm': 'inf'} VERB ROOT
Run Code Online (Sandbox Code Playgroud)

看起来 spaCy 正确地推断出“show”是一个动词,但它似乎认为它是一个不定式,而且我没有看到来自 的情绪信息tag_map。我意识到这些扩展信息可以在我的链接问题中找到,因为在那里解析意大利语,并且对于浪漫变形动词确定语气可能更简单。

无论如何,英语句子中的动词是否存在有关情绪的扩展信息?

nlp python-3.x spacy

7
推荐指数
0
解决办法
1115
查看次数