小编Ale*_*lex的帖子

Android应用的唯一ID

android应用程序的唯一ID是什么?是包名吗?在一台设备上是否可以有两个具有相同软件包名称的应用程序?

android

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

SQLite 和 LINQ to SQL - DataContext 和数据库创建问题

我用 C# 编写了一个使用 SQLite 数据库的 .NET 应用程序。我想使用 LINQ to SQL 作为 ORM 来处理数据库。因此,出于这个原因,我的项目中安装了两个 nuget 包:System.Data.SQLite Core (x86/x64)System.Data.SQLite LINQ

以下是我的应用程序中的一些简化代码:

[Table]
public class Entity
{
    [Column(IsPrimaryKey = true, IsDbGenerated = true, CanBeNull = false)]
    public int Id { get; set; }

    [Column]
    public string Data { get; set; }
}

public class EntityDataContent : DataContext
{
    public EntityDataContent(IDbConnection connection) : base(connection)
    {
    }

    public Table<Entity> Entities
    {
        get { return GetTable<Entity>(); }
    }
}
Run Code Online (Sandbox Code Playgroud)

为了从数据库获取数据,我使用以下代码:

SQLiteConnection connection …
Run Code Online (Sandbox Code Playgroud)

.net c# sqlite linq-to-sql

5
推荐指数
0
解决办法
992
查看次数

Windows Phone IsolatedStorageSettings&Mutex

我正在为Windows Phone开发一个应用程序.此应用程序使用后台代理(计划任务).

主应用程序借助IsolatedStorageSettings.ApplicationSettings存储一些设置.后台代理有时只能从设置中读取值.

问题是我应该使用Mutex来同步主应用程序和后台代理之间的IsolatedStorageSettings操作吗?或者在我的场景中不需要这个?

c# mutex windows-phone-7 windows-phone windows-phone-8

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

将存储库模式,缓存和Web服务链接在一起

我试着理解Repository模式在我的应用程序中实现它.我在某种程度上坚持了它.

以下是应用程序访问数据的简化算法:

  1. 第一次应用程序没有数据.它需要连接到Web服务才能获取此数据.因此,与Web服务交互的所有低级逻辑都将隐藏在WebServiceRepository类之后.从Web服务传递到应用程序的所有数据都将被缓存.

  2. 下次应用程序将请求数据时,将在从Web服务请求数据之前在缓存中搜索此数据.Cache将自身表示为数据库和XML文件,并将通过CacheRepository.

    缓存的数据可以处于三种状态:有效(可以向用户显示),无效(无法显示的旧数据)和部分有效(可以显示但必须尽快更新).

    a)如果缓存的数据有效,那么在我们得到它们之后我们就可以停止了.

    b)如果chached数据无效或部分有效,我们需要访问WebServiceRepository.如果对Web服务的访问成功结束,则所请求的数据将被缓存,然后将显示给用户(我认为这必须作为第二次调用实现CacheRepository).

    c)因此数据访问的入口点是CacheRepository.仅当没有完全有效的缓存时才会调用Web服务.

我无法弄清楚在哪里放置验证缓存的逻辑(有效/无效/部分有效)?在哪里拨打电话WebServiceRepository?我认为Repositories,由于违反了SOLID的单一责任原则(SRP),因此不能将此逻辑置于任何人之中.

我应该实现某种RepositoryService并将所有逻辑放入其中吗?或者也许有一种方法可以链接WebServiceRepositoryWebServiceRepository

实现这些的模式和方法是什么?

另一个问题是如何从缓存中获取部分有效的数据,然后在一个方法的调用中请求Web服务?我认为使用代表和事件.还有其他方法吗?

请提出建议.链接上面列出的所有功能的正确方法是什么?

PS也许我描述的有点令人困惑.如果需要,我可以提供一些额外的说明.

PPS在CacheRepository(下WebServiceRepository)我的意思是一组库的- CustomerCacheRepository,ProductCacheRepository等等.谢谢@hacktick的评论.

c# caching design-patterns web-services repository-pattern

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

Java多线程解析器

我正在编写一个多线程解析器.解析器类如下.

public class Parser extends HTMLEditorKit.ParserCallback implements Runnable {

    private static List<Station> itemList = Collections.synchronizedList(new ArrayList<Item>());
    private boolean h2Tag = false;
    private int count;
    private static int threadCount = 0;

    public static List<Item> parse() {
        for (int i = 1; i <= 1000; i++) { //1000 of the same type of pages that need to parse

            while (threadCount == 20) { //limit the number of simultaneous threads
                try {
                    Thread.sleep(50);
                } catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
            }

            Thread thread …
Run Code Online (Sandbox Code Playgroud)

java parsing multithreading

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

UnhandledException在Windows Phone上的所有情况下都能正常工作吗?

在我的Windows Phone应用程序中,我Application.UnhandledException用来捕获所有未处理的错误.如果发生这种错误,那么我的应用程序会显示一个简单MessageBox的请求,通过电子邮件向开发人员发送错误报告.它看起来像这样:

protected virtual void OnUnhandledException(
    object sender, ApplicationUnhandledExceptionEventArgs e)
{
    Deployment.Current.Dispatcher.BeginInvoke(() =>
        {
            var result = MessageBox.Show(
                "Would you like to send a report to developers?", 
                "Error", 
                MessageBoxButton.OKCancel);

            if (result == MessageBoxResult.OK)
            {
                var task = new EmailComposeTask();
                task.To = "feedback@site.com";
                task.Subject = "Error";
                task.Body = 
                    e.ExceptionObject + "\n" + e.ExceptionObject.StackTrace;
                task.Show();

                e.Handled = true;
            }
        });
}
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,一切正常.

但许多用户抱怨说,有时应用程序只是崩溃而没有消息.我在开发人员的仪表板中有一些崩溃报告,但这些报告只有非常少量的有用信息.我无法理解什么样的错误会导致这种情况.我只假设在一个后台线程中发生了一些错误.

Application.UnhandledException正常工作在所有情况下?一些例外是否仍然未得到处理?在上述情况下可以做些什么?

谢谢.

.net c# windows-phone-7 windows-phone windows-phone-8

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

我是否可以在Caliburn Micro中使用Coroutines帮助执行异步操作?

从文档中我意识到我可以使用Caliburn Micro的协同程序进行异步操作.开箱即用,没有额外的技术.所以我在Windows Phone应用程序中实现了下一个代码:

public class SimpleViewModel : Screen
{
    // ...

    protected override void OnViewLoaded(object view)
    {
        base.OnViewLoaded(view);

        Coroutine.BeginExecute(RunTask());
    }

    public IEnumerator<IResult> RunTask()
    {
        yield return new SimpleTask();
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

SimpleTask:

public class SimpleTask : IResult 
{
    public void Execute(ActionExecutionContext context)
    {
        Thread.Sleep(10000);
    }

    public event EventHandler<ResultCompletionEventArgs> Completed;
}
Run Code Online (Sandbox Code Playgroud)

我希望Execute方法中的代码将运行异步.但这不会发生.我的UI线程被阻止了10秒钟.

我犯了哪个错误?或者我对协同程序的异步性质的假设是错误的?

c# asynchronous coroutine windows-phone-7 caliburn.micro

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