我正在使用LINQ .Find(),当它找到匹配时它不会停止.我有:
List<ipFound> ipList = new List<ipFound>();
ipFound ipTemp = ipList.Find(x => x.ipAddress == srcIP);
if (ipTemp == null) {
// this is always null
}
public class ipFound
{
public System.Net.IPAddress ipAddress;
public int bytesSent;
public int bytesReceived;
public int bytesTotal;
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我在这里疯了.
谢谢!
我想将当前log4net日志作为电子邮件附件发送,System.Net.Mail.Attachment但是当我传入文件路径时,IOException会抛出一个.
Attachment mailAttachment = new Attachment(logPath);
Run Code Online (Sandbox Code Playgroud)
该进程无法访问文件'C:\ Log\log4net.log',因为它正由另一个进程使用
appender配置如下所示:
<appender name="RootRollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="C:\Log\log4net.log" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="MaximumFileSize" value="10024KB" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%username|%thread] %-5level %logger: %message%newline" />
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题?我可以复制出日志文件或以某种方式从锁定过程中释放它吗?
我有一个安装程序项目(Visual Studio安装项目),它具有指向项目输出的桌面和开始菜单链接.这两个快捷方式都链接到同一个输出程序集.

当我尝试执行卸载时,我收到以下错误:

警告1910.Could不能删除Shortcut Bing Background.lnk.验证快捷方式文件是否存在以及是否可以访问它.
知道是什么导致了这个以及如何解决它吗?
我使用以下代码从 Amazon S3 读取文本文件,并逐行处理它。这段代码可以工作,但问题是速度很慢。
GetObjectRequest getObjRequest = new GetObjectRequest()
.WithBucketName(amazonSettings.BucketName)
.WithKey(_fileKey);
using (AmazonS3 client = AWSClientFactory.CreateAmazonS3Client(
amazonSettings.AccessKey,
amazonSettings.SecretAccessKey))
using (GetObjectResponse getObjRespone = client.GetObject(getObjRequest))
using (Stream amazonStream = getObjRespone.ResponseStream)
{
StreamReader amazonStreamReader = new StreamReader(amazonStream);
tempGsContact = new GSContact();
while ((_fileLine = amazonStreamReader.ReadLine()) != null)
{
if (_fileLine.Equals("END:VCARD"))
{
// Make process 1
}
else if (!_fileLine.Equals(string.Empty))
{
//Make process 2
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是:我能否得到更充分的方式来降低时间成本?
我在下面使用这个脚本来创建一个函数,但是在消息日志中出现错误:
CREATE FUNCTION [dbo].[MyFunction] () RETURNS BIT AS RETURN CAST(1 AS BIT)
Run Code Online (Sandbox Code Playgroud)
Msg 102,Level 15,State 31,Procedure MyFunction,Line 1'RETURN'附近的语法不正确.
当我更改它以返回表格时,它可以工作:
CREATE FUNCTION [dbo].[MyFunction] () RETURNS TABLE AS RETURN (SELECT 1 [1])
Run Code Online (Sandbox Code Playgroud)
所以我不确定是什么问题.为什么这适用于表而不是一点?
DropDownList在OnSelectedIndexChanged发生事件之前,我如何获得上一个项目?
示例:我有一个DropDownList名称作为其项目("John","Mark").默认情况下SelectedIndex是"John".在更改其索引并选择"标记"后,OnSelectedIndexChanged将触发该事件.当我使用ddlName.SelectedIndex它时,只返回"Mark"的索引,我想得到的是"John"的索引.
我尝试在取消下面的任务时运行一个简单的例子
CancellationTokenSource tokenSource2 = new CancellationTokenSource();
CancellationToken token2 = tokenSource2.Token;
Task task2 = new Task(() =>
{
for (int i = 0; i < int.MaxValue; i++)
{
token2.ThrowIfCancellationRequested();
Thread.Sleep(100);
Console.WriteLine("Task 2 - Int value {0}", i);
}
}, token2);
task2.Start();
Console.WriteLine("Press any key to cancel the task");
Console.ReadLine();
tokenSource2.Cancel();
Console.WriteLine("Task 2 cancelled? {0}", task2.IsCanceled);
Run Code Online (Sandbox Code Playgroud)
我预计 Console.WriteLine("Task 2 cancelled? {0}", task2.IsCanceled);会打印**"Task 2 cancelled? True"**,但它打印"假".
你知道发生了什么吗?这是预期的行为吗?谢谢.
编辑:确保在调用取消请求之前未完成任务.我加了Console.ReadLine().
我经常需要处理一个项目队列,其中没有一个用户应该能够阻塞队列,并且队列中的项目应该按某种顺序处理.我经常写一个类来做这个,但我认为应该有一些通用版本,但我找不到一个.
所以我正在寻找一个队列类,我可以在其中指定一个类型,一个分区选择器和一个选择器,以便我可以将对象添加到队列中,然后当我将对象退出时,我从第一个对象中获取我的订单说明符排序的下一个分区.
例如,我会像这样调用如何分区以及如何对队列进行排序:
var queue = new RoundRobinQueue<Message>(
_ => _.UserID,
_ => _.SendDate
);
Run Code Online (Sandbox Code Playgroud)
后,我已经添加了很多信息的,我可以Parallel.ForEach在我的队列中的项目,并处理它们在最早的顺序SendDate下一个User.这样,如果一个用户很慢,他的项目将不会阻塞队列,因为他只获得一个线程,但如果只有一个用户,他是唯一的分区,所以他获得所有线程.
我看了一遍,但在C#中找不到一个很好的通用实现.有任何想法吗?
我想编写c#应用程序,它将在一些正在运行的应用程序之间切换.它应该像Windows中的Alt + Tab一样执行确切的功能.我使用SetForegroundWindow()Windows API中的函数,但如果在Windows任务栏上最小化应用程序,则它无法正常工作.所以我添加了ShowWindow()功能,但有一个问题是我无法以用户设置的原始大小显示窗口.
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
Run Code Online (Sandbox Code Playgroud)
示例:我最大化窗口,然后将其最小化到任务栏中.我打电话的时候:
ShowWindow(processWindowHandle, ShowWindowCmd.SW_NORMAL);
WindowsApi.SetForegroundWindow(processWindowHandle);
Run Code Online (Sandbox Code Playgroud)
窗口未最大化.我尝试使用ShowWindowCmd.SW_NORMAL参数,但结果相同.
我想要做的是创建一个扩展 HTML 支持的扩展 - 也就是说,它可以完成 HTML 支持所做的所有事情,甚至更多,其中包括以下内容:
本页列出了这些详细信息VS Code 中的 HTML 编程
最终我想创建一个支持Liquid 模板语法突出显示和自动完成的扩展。
我已经让#1 作为着色器独立工作,#2 可以通过语言服务器完成。
由于 Liquid 表达式被插入到 HTML 文档中,因此该插件应该构建在 HTML 支持之上/扩展 HTML 支持而不是覆盖它。这可能吗?