小编Rom*_*key的帖子

#if #else #endif和Regular if之间的差异,否则

正如标题所述,我想知道使用之间有什么区别

#if
   DoWork();
#else
   DoAnotherWork();
#endif
Run Code Online (Sandbox Code Playgroud)

if (debug)
   DoWork();
else
   DoAnotherWork();
Run Code Online (Sandbox Code Playgroud)

.net c#

5
推荐指数
3
解决办法
1879
查看次数

提高SQLite性能

好吧,我有一个file.sql包含20,000插入命令

样本来自.sql文件

插入table值(1,-400,400,3,154850,'Text',590628,'TEXT',1610,'TEXT',79);

INSERT INTO tableVALUES(39,-362,400,3,111659,'Text',74896,'TEXT',0,'TEXT',14);

我使用以下代码创建一个内存Sqlite数据库并将值拉入其中,然后计算经过的时间

using (var conn = new SQLiteConnection(@"Data Source=:memory:"))
{
    conn.Open();

    var stopwatch = new Stopwatch();
    stopwatch.Start();

    using (var cmd = new SQLiteCommand(conn))
    {
        using (var transaction = conn.BeginTransaction())
        {

                cmd.CommandText = File.ReadAllText(@"file.sql");
                cmd.ExecuteNonQuery();

            transaction.Commit();
        }
    }

    var timeelapsed = stopwatch.Elapsed.TotalSeconds <= 60
                          ? stopwatch.Elapsed.TotalSeconds + " seconds"
                          : Math.Round(stopwatch.Elapsed.TotalSeconds/60) + " minutes";
    MessageBox.Show(string.Format("Time elapsed {0}", timeelapsed));
    conn.Close();
}
Run Code Online (Sandbox Code Playgroud)

我尝试过的事情

  1. 使用文件数据库而不是内存数据库.
  2. 使用begin transaction和commit transaction [在我的代码中显示].
  3. 使用Firefox的扩展命名 …

c# sql sqlite

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

.NET 4.5中的任务与线程

.Net 4,还有新的任务功能,我想知道如果我可以依靠它考勤记录Async/Await.Net 4.5的一切,我想要异步执行还是有,我将不得不使用一个单独的某些情况下,方法(S) Thread,特别是我已经读过Task.Run使用a ThreadPool来异步执行该方法.

结论:是使用的组合Async/Await沿Tasks可以免费使用我的Threads

.net c#

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

创建任务计划程序

好吧,在我正在创建的应用程序中,我希望有一个调度程序,其中包含有关传入作业的数据以及执行它们的剩余时间,因此我创建了一个非常天真的实现,我认为它远非应有的.

履行

接口

public interface IQueue
{
    string Name { get; set; }
    int Priority { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

public class TaskScheduler : Queue, IQueue
{
    public string Name { get; set; }
    public int Priority { get; set; }

    public TaskScheduler(string name, int priority)
    {
        Name = name;
        Priority = priority;
    }

    public void Add(string work, TimeSpan execution)
    {
        Enqueue(new Job {Work = work, Execution = execution});
    }

    public Job Get()
    {
        return (Job) Dequeue();
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# scheduled-tasks

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

类型'T'不等待

我正在创建一个任务调度程序,所以我试图做一些接受任务并等待它的重复函数,但我得到一个奇怪的异常 Type 'T' is not awaitable

public static Task<T> Interval<T>(TimeSpan pollInterval, Func<T> action, CancellationToken token)
{
    return Task.Factory.StartNew(
        async () =>
        {
            for (; ; )
            {
                if (token.WaitCancellationRequested(pollInterval))
                    break;

                await action();
            }
        }, token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
}
Run Code Online (Sandbox Code Playgroud)

所以任何人都可以告诉我,我怎么能等待一个通用的任务因为我希望该功能接受任何任务,任务,布尔或​​任何其他类型?

c# task task-parallel-library async-await

5
推荐指数
2
解决办法
6701
查看次数

在控件周围绘制边框

好吧,我想在面板控件周围绘制自定义边框,我发现可以使用以下命令轻松实现

ControlPaint.DrawBorder(e.Graphics, ClientRectangle,
                 Color.Indigo, 10, ButtonBorderStyle.Solid,
                 Color.Indigo, 10, ButtonBorderStyle.Solid,
                 Color.Indigo, 10, ButtonBorderStyle.Solid,
                 Color.Indigo, 10, ButtonBorderStyle.Solid);
Run Code Online (Sandbox Code Playgroud)

但是,此方法和我尝试过的所有其他方法实际上在面板内绘制边框,因此当我将某些控件停靠在其中时,该控件会隐藏边框。

在此输入图像描述

所以我想知道有没有办法在控件之外绘制边框来避免这个问题?

c# winforms

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

Visual Studio 2013无法保存,构建或重建解决方案

突然之后,我点击清洁解决方案后,我再也无法保存,构建或对解决方案做任何事情.它似乎是一个错误,因为每次我按CTRL + S或只是重建或构建甚至开始按钮我收到此消息

在此输入图像描述

  • 此外,我仔细检查了所有的组件,他们没有什么是缺少的.我需要找到一个解决方案而不会丢失未保存的数据.

visual-studio

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

如何实现typeof和sizeof

我想知道如何实现typeofsizeof关键字.

如果我想实现我自己什么'x'of()表情好像timeof(object)在那里object含有DateTime作为它的一个特性还是什么?

c#

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

TPL打破未处理的异常

async awaitTask.Factory.StartNew我的应用程序一样使用,但我注意到的一件事是,当未处理的异常发生时,visual studio不再破坏

这就是我的意思 before using await 在此输入图像描述

但是在我将一个方法转换为a Task并使用await之后

在此输入图像描述

它仅在视觉工作室的输出区域中捕获...

顺便说一下:对我来说很奇怪,因为我是.Net4.5的新手,请原谅我,如果没有说明我需要的具体内容,那么我想知道的是

  • 当使用异步等待时,我如何使视觉工作室中断异常

c# debugging exception-handling visual-studio async-await

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

模型类可以包含方法和构造函数

:`模型类可以包含方法和构造函数吗?" [BEST PRACTICE]

我有一个员工模型类,包括员工的姓名,年龄,工资等......

public class Employee
{
    public string Name { get; set; }
    public int Age { get; set; }
    public int Salary { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

所以上面可以Model Class包含一些自我更新方法[比如用计时器或其他东西每1小时更新一次员工的年龄]和\或构造函数,或者更好地处理来自执行者的所有事情?

c#

4
推荐指数
2
解决办法
1115
查看次数