正如标题所述,我想知道使用之间有什么区别
#if
DoWork();
#else
DoAnotherWork();
#endif
Run Code Online (Sandbox Code Playgroud)
和
if (debug)
DoWork();
else
DoAnotherWork();
Run Code Online (Sandbox Code Playgroud) 好吧,我有一个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)
我尝试过的事情
井.Net 4,还有新的任务功能,我想知道如果我可以依靠它考勤记录Async/Await中.Net 4.5的一切,我想要异步执行还是有,我将不得不使用一个单独的某些情况下,方法(S) Thread,特别是我已经读过Task.Run使用a ThreadPool来异步执行该方法.
结论:是使用的组合Async/Await沿Tasks可以免费使用我的Threads?
好吧,在我正在创建的应用程序中,我希望有一个调度程序,其中包含有关传入作业的数据以及执行它们的剩余时间,因此我创建了一个非常天真的实现,我认为它远非应有的.
接口
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) 我正在创建一个任务调度程序,所以我试图做一些接受任务并等待它的重复函数,但我得到一个奇怪的异常 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)
所以任何人都可以告诉我,我怎么能等待一个通用的任务因为我希望该功能接受任何任务,任务,布尔或任何其他类型?
好吧,我想在面板控件周围绘制自定义边框,我发现可以使用以下命令轻松实现
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)
但是,此方法和我尝试过的所有其他方法实际上在面板内绘制边框,因此当我将某些控件停靠在其中时,该控件会隐藏边框。

所以我想知道有没有办法在控件之外绘制边框来避免这个问题?
突然之后,我点击清洁解决方案后,我再也无法保存,构建或对解决方案做任何事情.它似乎是一个错误,因为每次我按CTRL + S或只是重建或构建甚至开始按钮我收到此消息

我想知道如何实现typeof和sizeof关键字.
如果我想实现我自己什么'x'of()表情好像timeof(object)在那里object含有DateTime作为它的一个特性还是什么?
我async await和Task.Factory.StartNew我的应用程序一样使用,但我注意到的一件事是,当未处理的异常发生时,visual studio不再破坏
这就是我的意思 before using await

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

它仅在视觉工作室的输出区域中捕获...
顺便说一下:对我来说很奇怪,因为我是.Net4.5的新手,请原谅我,如果没有说明我需要的具体内容,那么我想知道的是
问:`模型类可以包含方法和构造函数吗?" [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小时更新一次员工的年龄]和\或构造函数,或者更好地处理来自执行者的所有事情?