小编Kei*_*ith的帖子

在Android上将图片翻译成文字?

我知道谷歌护目镜会将图片翻译成文字.我想要做的是允许用户拍照(没问题),将该图片翻译成文本(?)然后对文本进行一些处理(没问题).

android上有没有允许这个的API?或者有没有办法与谷歌护目镜进行程序化沟通?我不想让用户使用护目镜然后用我的应用程序选择保存的文件.....

ocr android

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

自定义ChangeMonitor for .Net MemoryCache导致无效的操作异常

我为.Net MemoryCache编写了自己的自定义更改监视器类.它似乎初始化很好,但是当我尝试将它添加到Cache时,它会抛出一个InvalidOperation异常"该方法已经被调用,并且只能被调用一次."

我的更改监视器类

internal class MyChangeMonitor : ChangeMonitor
{
    private Timer _timer;
    private readonly string _uniqueId;
    private readonly TypeAsOf _typeAsOf;
    private readonly string _tableName;

    public GprsChangeMonitor(TypeAsOf typeAsOf, string tableName)
    {
        bool initComplete = false;
        try
        {
            _typeAsOf = typeAsOf;
            _tableName = tableName;

            _uniqueId = Guid.NewGuid().ToString();
            TimeSpan ts = new TimeSpan(0, 0, 5, 0, 0);
            _timer = new Timer {Interval = ts.TotalMilliseconds};
            _timer.Elapsed += CheckForChanges;
            _timer.Enabled = true;
            _timer.Start();
            initComplete = true;
        }
        finally 
        {
            base.InitializationComplete();
            if(!initComplete)
                Dispose(true);
        }
    }

    void …
Run Code Online (Sandbox Code Playgroud)

.net c# invalidoperationexception

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

C#实现FNV哈希

我有很多情况需要在C#中访问一个体面的哈希算法,从覆盖GetHashCode到对数据执行快速比较/查找.

我发现FNV哈希是一个非常简单/好/快的哈希算法.但是,我从未见过一个C#实现的好例子.

FNV-1a哈希算法的核心如下:

 hash = OFFSET_BASIS
 foreach (object value in object) 
 {
     hash = hash ^ value.GetHashCode()
     hash = hash * FNV_PRIME
 }
Run Code Online (Sandbox Code Playgroud)

所以,当我覆盖GetHashCode一个类时,我最终做了类似的事情:

public static class FNVConstants
{
    public static readonly int OffsetBasis = unchecked((int)2166136261);
    public static readonly int Prime = 16777619;
}

public override int GetHashCode()
{
    int hash = Constants.FNVConstants.OffsetBasis;
    hash = (hash ^ EntityId.GetHashCode()) * Constants.FNVConstants.Prime;
    hash = (hash ^ FromDate.GetHashCode()) * Constants.FNVConstants.Prime;
    hash = (hash ^ ToDate.GetHashCode()) * Constants.FNVConstants.Prime;
    return hash; …
Run Code Online (Sandbox Code Playgroud)

.net c# hash fnv

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

NLog MappedDiagnosticsLogicalContext无法使用ConfigureAwait在异步/等待中工作(false)

我使用的是NLog 4.3.5和.Net framework 4.6.1

当我开始服务器端操作时,我打电话给:

NLog.MappedDiagnosticsLogicalContext.Set("OperationId", Guid.NewGuid());
Run Code Online (Sandbox Code Playgroud)

这将映射并显示在我的日志文件中.一切都很好......或者是它?在查看我的日志文件时,我注意到这个操作id值似乎没有像我预期的那样工作.

例:

  1. 在线程19中,操作开始并设置上下文.

  2. 它在所有await调用上使用.ConfigureAwait(false)

  3. 它执行一个

    var tasks = items.Select(item => Task.Run( () => { /* do stuff */}
    await Task.WhenAll(tasks).ConfigureAwait(false)
    
    Run Code Online (Sandbox Code Playgroud)
  4. 用于这些任务的线程之一是线程31(以后记住这一点)
  5. 同时,在线程36中,调用不同的服务器方法并开始新的操作.使用它的唯一操作ID编写了几条日志消息
  6. 此操作使用ConfigureAwait执行2个不同的等待调用(false)
  7. 下一个日志语句出现在线程31上.从那时起,它记录为在线程19上开始的操作创建的操作ID!

我没想到会发生这种情况,也不确定它是如何发生的.但是,当我查看我的日志历史时,我发现此类事情之前已经发生过.

我认为逻辑调用上下文应该继续存在.是否使用了导致此行为的ConfigureAwait(false)?这是我唯一能想到的......

c# nlog

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

对Android API和兼容性感到困惑

我已经购买了HTC Incredible并潜入了android的世界!只是发现自己完全混淆了API级别和向后兼容性.

我的设备运行2.1操作系统,但我知道大多数设备运行1.5或1.6; 很快2.2操作系统将在新设备上运行.SDK已经经历了如此巨大的变化,甚至常量已被重命名(例如,从VIEW_ACTION到ACTION_VIEW).已添加和删除方法(onPause替换之前的调用等).

所以,如果我想编写一个适用于1.6+的应用程序,那是否意味着我必须使用1.6 API安装和编写我的代码; 然后测试更高版本?或者我可以使用2.1 SDK编写并只设置minSDK级别而不使用"新"功能吗?

我从来没有使用过从版本到发布版本彻底改变SO的SDK!所以我不知道该怎么办......

我阅读了Android开发网站上的一篇文章(这篇关于堆栈溢出的帖子引用了它:是否应该使用SDK 2.1重建遗留的Android应用程序?),但对我来说仍然不是很清楚.任何帮助,将不胜感激

android

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

如何在具有多个级别的WPF数据网格中显示分组?

我是WPF的新手,所以我了解样式和设置员,但是在此方面遇到了麻烦。

我正在使用WPF数据网格,并且需要显示多个分组级别。我希望第二和第三小组的等级比最高等级的缩进更多。

下面的代码将显示组级别,但是将它们显示在另一个组级别的正上方,并且使它们成为嵌套的组级别这一事实无法分辨。

<Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type GroupItem}">
                <Expander IsExpanded="True">
                    <Expander.Header>
                        <TextBlock Text="{Binding Path=Name}"/>
                    </Expander.Header>
                    <ItemsPresenter />
                </Expander>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

如何获得基于级别缩进的组标题?

c# wpf

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

标签 统计

c# ×4

.net ×2

android ×2

fnv ×1

hash ×1

invalidoperationexception ×1

nlog ×1

ocr ×1

wpf ×1