小编cae*_*say的帖子

CPU/GPU监控.(C#中的温度,当前速度等)

我正在寻找一种监控系统统计信息的方法.

以下是我的主要兴趣点:

  • CPU Tempature
  • CPU速度(每秒周期)
  • CPU负载(空闲百分比)
  • GPU Tempature

其他一些兴趣点:

  • 内存使用情况
  • 网络负载(流量上/下)

我的最终目标是编写一个可用于在后台轻松运行的应用程序,并允许为某些操作设置许多事件,例如:When processer temp gets to 56C -> Do _Blank_等等.

所以这给我留下了两个要点.

  1. 对于这类事情,是否已经存在一个框架?
  2. 如果不是#1,我该怎么做呢?

脚注

如果代码是另一种.net语言,那没关系.

.net c# system-monitoring

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

在 C# + PHP 中使用命名管道进行进程间通信

在 C# 中使用命名管道进行进程间通信很容易,但我不确定如何在 php 中执行此操作,或者是否可能。所以我有这些问题:

  1. php 中可以使用命名管道吗?
  2. 是否可以有一个 C# 命名管道客户端连接到 php 命名管道服务器?
  3. 我到底要怎么编码呢?:)

对上述任何问题的回答都会非常有帮助..谢谢:)

编辑:它是一个独立的 php 程序,而不是基于网络的应用程序。

edit2:命名管道服务器可以在C#端,也可以在PHP端,这并不重要。我已经为两者制作了 C# 示例..但我不知道从哪里开始 php

php c# interprocess

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

什么时候Thread.Abort()实际上不会中止?

所以你看了标题,Thread.Abort()什么时候才能实际中止?我听说很多人说它是一个危险的命令,它永远不能保证工作,但我从来没有真正能够重现它.它总是对我有用..

是否有可能导致Thread.Abort的()失败的任何具体情况consistantly

c# multithreading abort

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

装配在构建之外进行优化

我有一个完全填充了在另一个程序集中实现接口的类的程序集.例如:

Main Assembly (Reference to both assemblies)

Shared Assembly
-----IModule 

Class Assembly (Reference to shared assembly)
-----unknownType : IModule
-----unknownType2 : IModule
Run Code Online (Sandbox Code Playgroud)

主程序集没有直接引用类程序集中的任何类型.我正在寻找类似的类型:

// Load all referenced assemblies:
Assembly.GetExecutingAssembly().GetReferencedAssemblies()
    .Except(AppDomain.CurrentDomain.GetAssemblies().Select(a => a.GetName()))
    .Distinct()
    .ToList()
    .ForEach(act => Assembly.Load(act));

// Find all instances of IModule in loaded assemblies:
var modules = from asm in AppDomain.CurrentDomain.GetAssemblies()
   from provider in asm.GetTypes()
   where typeof(IModule).IsAssignableFrom(provider)
   ...instantiate type etc...
Run Code Online (Sandbox Code Playgroud)

如果我在类程序集中只引用了一个任意类型,那么它会显示在GetReferencedAssemblies中,被加载并正确返回 - 但是一旦我删除对该类型的引用,它就不会被转移到构建目录或显示为引用的程序集导致加载失败.

有没有办法强制VS将此程序集包含在输出目录中?主应用程序不应该知道类程序集中的任何类型.

.net c# reflection .net-assembly visual-studio-2013

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

WPF KeyBinding吞咽键,阻止TextBox使用

问题概述:
任何KeyBinding定义在高于a的级别TextBox(未指定修改键),都会阻止用户在内部键入这些键TextBox.

最小的XAML层次结构:

<Window>
  <UserControl>
    <Border>
      <UserControl>
        <TextBox>
Run Code Online (Sandbox Code Playgroud)

最小命令/键绑定:

<UserControl.Resources>
    <RoutedUICommand x:Key="Commands.SomeCommand" />
</UserControl.Resources>
<UserControl.InputBindings>
    <KeyBinding Key="A" Command="{StaticResource Commands.SomeCommand} />
</UserControl.InputBindings>
<UserControl.CommandBindings>
    <CommandBinding Command="{StaticResource Commands.SomeCommand}" Executed="..." />
</UserControl.CommandBindings>
Run Code Online (Sandbox Code Playgroud)

CommandKeyBinding,在已定义的第一 UserControl电平.因此,在此示例中,在文本框中,用户可以自由键入,直到他们按下A键,然后它不会将字母插入文本框.我可以清楚地看到,TextBox.KeyDown并且TextBox.PreviewKeyDown 当你按下开火A键(Handled = false),但信不会被添加到文本框中的文字,并TextBox.PreviewTextInput没有火.

我正在寻找任何建议,可能表明什么是吞咽按键并阻止它被TextBox处理,或者与我如何调试此问题有关.

编辑:
感谢Snoop,我能够清楚地看到问题所在.

  1. TextBox.PreviewKeyDown 隧道向下并通过可视树触发,从Window开始,到TextBox结束
  2. TextBox.KeyDown 气泡从TextBox开始向后朝向窗口
  3. TextBox.KeyDown 通过第一个具有KeyBinding设置的UserControl将Handled设置为true.
  4. TextBox.PreviewTextInput 从不触发,文本框也不处理输入,因为KeyDown事件被设置为已处理.

这仍然存在问题,如果文本框具有焦点,如何防止UserControl处理输入?在Command执行中,我可以检查文本框是否具有键盘焦点,但此时为时已晚.

.net c# wpf xaml

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

键入lodash _.get的安全版本-有条件地解构数组类型

长期以来,我们一直存在一个问题,即安全,轻松地访问嵌套属性的唯一方法是使用_.get。例如:

_.get(obj, "Some.Nested[2].Property", defaultValue);
Run Code Online (Sandbox Code Playgroud)

这很好用,但不能承受频繁发生的属性重命名。从理论上讲,应该可以将以上内容转换为以下内容,并允许TypeScript隐式地对其进行类型检查:

safeGet(obj, "Some", "Nested", 2, "Property", defaultValue);
Run Code Online (Sandbox Code Playgroud)

我成功地为除数组类型之外的所有内容创建了这样的类型:

function getSafe<TObject, P1 extends keyof TObject>(obj: TObject, p1: P1): TObject[P1];

function getSafe<TObject, P1 extends keyof TObject, P2 extends keyof TObject[P1]>(obj: TObject, p1: P1, p2: P2): TObject[P1][P2];
Run Code Online (Sandbox Code Playgroud)

这样可以正确地检查深度项目(我将自动生成这些语句到10个级别左右)。数组属性失败,因为传递给下一个参数的类型为T[]and not T

由于将自动生成代码,因此无需考虑任何解决方案的复杂性或冗长性,问题是我似乎找不到类型声明的任何组合,这些组合允许我接受整数参数并解构数组类型移动向前。

您可以使用来解构一个数组(其中T是一个数组)T[number]。问题是我无法限制T嵌套属性上的数组在哪里。

function getSafe<TObject, P1 extends keyof TObject, P2 extends keyof TObject[P1][number]>(obj: TObject, p1: P1, index: number, p2: P2): TObject[P1][number][P2];
                                                                                 ^^^^^^                                                             ^^^^^^
const test2 = getSafe(obj, "Employment", 0, …
Run Code Online (Sandbox Code Playgroud)

javascript typescript lodash typescript-typings

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

将int转换为具有一定长度char的字符串

如果标题不清楚,那就试着在这里解释一下.我有一堆整数,范围从1到999,我需要将它们转换为字符串,但是当我这样做时,我需要它们是3个字符长.所以,例如,如果我有:

int i1 = 45;
Run Code Online (Sandbox Code Playgroud)

然后当我把它变成一个字符串时,我需要这个:"045"或者类似地,如果我有一个8的int那么就必须变成"008",如果有任何东西有3个位置,比如143,那么它就会被输出作为143.这很容易吗?

感谢您提前回复.:)

c# string-conversion

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

所有LINQ查询表达式关键字的列表?

所以我最近一直在用LINQ做事,我一直在网上查找所有集成LINQ关键字的完整列表,我找不到任何.

这些是我所知道的一些:

from in 
let 
group by into
orderby
where
select
Run Code Online (Sandbox Code Playgroud)

还有其他我不了解的吗?在哪里可以找到集成LINQ所有可能的完整列表?

.net c# linq

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

防止人们对我的网络协议进行逆向工程

我知道我不能阻止人们对我的协议进行逆向工程,但是我想采取一种安全透明的方法来尽可能地使其变得更加困难.

我有一个服务器/客户端系统,通过网络与http样式数据包通信.

例:

Header
Attribute: Value
Attribute2: Other Value

Payload
Run Code Online (Sandbox Code Playgroud)

我想尽可能地让除了我的客户以外的任何东西都能访问网络.推动他们的问题反编译我的程序集 - 我可以对这个网络规范做些什么好事,这将使得理解并在没有源的情况下进行另一个实现非常困难

我在想某种奇怪的哈希方法或某种加密算法很难.

编辑我不是想保护我的程序集或源代码.我试图阻止某人,例如,使用WireShark或类似方法观看我的协议,然后根据该信息制作自己的实现.

c# security obfuscation networking

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

*.targets无法再次导入.它已经导入了

我在VS 2017中构建了UWP应用程序,并且我的解决方案中的许多项目都构建了如下警告.如何摆脱它们?

警告"C:\ Program Files(x86)\ MSBuild\15.0.Net\CoreRuntime\Microsoft.Net.CoreRuntime.targets"无法再次导入.它已经导入"C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Community\MSBuild\15.0\Microsoft.Common.targets\ImportAfter\Microsoft.Net.CoreRuntime.ImportAfter.targets(17,3)" .这很可能是构建创作错误.此后续导入将被忽略.[D:\ Projects\HA4IoT\Controllers\HA4IoT.Controller\HA4IoT.Service.csproj] HA4IoT.Tests
警告"C:\ Program Files(x86)\ MSBuild\15.0.Net\CoreRuntime\Microsoft.Net.CoreRuntime.Settings.目标"无法再次导入.它已导入"C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Community\MSBuild\15.0\Microsoft.Common.targets\ImportBefore\Microsoft.Net.CoreRuntime.ImportBefore.targets(17,3)" .这很可能是构建创作错误.此后续导入将被忽略.[D:\ Projects\HA4IoT\DNF\HA4IoT.Extensions.Tests\HA4IoT.Extensions.Tests.csproj] HA4IoT.Controller.Dnf
警告"C:\ Users\dnf.nuget\packages\microsoft.net.native.compiler\1.6.3\tools\Microsoft.NetNative.targets"无法再次导入.它已经导入"C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Community\MSBuild\15.0\Microsoft.Common.targets\ImportAfter\Microsoft.NetNative.ImportAfter.targets(16,3)".这很可能是构建创作错误.此后续导入将被忽略.[D:\ Projects\HA4IoT\Controllers\Examples\HA4IoT.Controller.Main\HA4IoT.Controller.Main.csproj] HA4IoT.Controller.Main

msbuild uwp visual-studio-2017

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