我试图通过让一个线程写入链表而另一个线程处理链表来加快速度.
出于某种原因,如果写入链表的方法我将其作为一个任务,并且从链表中读取一个低优先级线程的方法,程序整体上完成的速度要快得多.换句话说,我在做的时候经历了紧固结果:
Task.Factory.StartNew( AddItems );
new Thread( startProcessingItems ) { Priority = ThreadPriority.Lowest }.Start();
while(completed==false)
Thread.Sleep(0);
Run Code Online (Sandbox Code Playgroud)
也许是因为第一个任务是做了比其他线程更多的额外工作,这就是为什么如果我将第二个方法设置为低优先级,整个事情将会更快完成.
无论如何,现在我的问题是startProcessingItems
ThreadPriority =最低的运行.我怎么能把它的优先级改为最高?如果我在该方法中创建一个新任务,它将以低优先级运行吗?基本上,startProcessingItems以列表结束,一旦它具有该列表,我将开始以最高优先级执行.
如果我有以下绑定:
<bindings>
<wsHttpBinding>
<binding name="Binding">
<security mode="Transport">
<message clientCredentialType="Windows"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)
用户名和密码是否可以通过网络以纯文本形式发送?
我知道默认情况下wcf会加密连接.我问这个问题的原因是因为:
我从http://msdn.microsoft.com/en-us/library/aa354513.aspx那里得到了
所以我的问题是我知道默认情况下连接是加密的.但是,我是否需要ssl证书才能防止用户看到用户名和密码.我知道,一旦我通过身份验证,邮件就会被加密.但是密码和用户名也加密了吗?
我有一个程序,我让用户创建几个函数,一旦他创建了所有函数,我每隔x毫秒运行一次.换句话说,我有类似的东西:
// functionsToExecute is of type = List<Action>
// x = some integer
while(true){
foreach(Action action in functionsToExecute)
{
action();
}
Thread.Sleep(x);
}
Run Code Online (Sandbox Code Playgroud)
现在我想让用户决定每个功能等待多长时间.例如,如果用户创建了2个函数,他可能希望第一个函数每1500毫秒运行一次,每1500个下一个函数.我正在考虑为这个场景创建两个线程,然后实现相同的.但是如果用户创建了50个功能呢?我需要50个线程!
总之,我想每n毫秒执行一次x次动作......创建这种算法的最佳方法是什么?例如,如果我有3个动作,我将每200毫秒执行第一个动作,下一个每500毫秒执行一次,最后一个每1000毫秒执行一次.
也许我需要类似于SetTimout
javascript中的函数
我有以下代码:
<Window x:Class="Demo3D.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Viewport3D Name="viewport3D1">
<Viewport3D.Camera>
<PerspectiveCamera x:Name="camMain" Position="6 5 4" LookDirection="-6 -5 -4">
</PerspectiveCamera>
</Viewport3D.Camera>
<ModelVisual3D>
<ModelVisual3D.Content>
<DirectionalLight x:Name="dirLightMain" Direction="-1,-1,-1">
</DirectionalLight>
</ModelVisual3D.Content>
</ModelVisual3D>
<ModelVisual3D x:Name="MyModel">
<ModelVisual3D.Content>
<GeometryModel3D>
<GeometryModel3D.Geometry>
<MeshGeometry3D x:Name="meshMain"
Positions="0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1"
TriangleIndices="2 3 1 2 1 0 7 1 3 7 5 1 6 5 7 6 4 5 6 …
Run Code Online (Sandbox Code Playgroud) 我知道尝试实现自己的加密算法是个坏主意.这是我认为不是的一个原因:
例如,假设我想发送plainText = new byte[]{2,5,1,6,7}
给bob.
如果我使用AES加密或其他熟知的算法,那么我将:
cipherText = Aes.Encrypt(plainText, key, iv); // now I have some cipher text that is not readable to anyone if they do not have the key and iv vector.
Run Code Online (Sandbox Code Playgroud)
如果有人想要解密该消息,那么他们将不得不做以下事情:
newPlainText = Aes.Decrypt(cipherText, key, iv);
Run Code Online (Sandbox Code Playgroud)
现在我的问题是AES如何知道你是否输入了正确的密钥?我认为使用一种不会出现暴力攻击的算法会更安全.换句话说,如果黑客知道你使用了AES,它可以继续尝试很多密码,直到method Aes.Decrypt
Thorw也不例外.现在考虑这个算法:
假设我想将相同的字节数组发送{2,5,1,6,7}
到bob.我的加密算法可能如下所示:
password is ="securePassword";
我将迭代我的纯文本上的每个字节,并对密码上每个字符的ASCII值执行Xor运算符.例如,第一个字节将是2 Xor (ASCII value of 's')
下一个值将5 Xor (ASCII value of 'e')
结束我将结束{2 Xor 's', 5 Xor 'e', 1 Xor 'c', 6 Xor 'u', …
假设我有班级
public partial class MyEntities: DbContext
{
public DbSet<Customer> Customers {get;set;}
public DbSet<CustomerInfo> CustomerInfos {get;set;}
public DbSet<Order> Orders {get;set;}
// etc
}
Run Code Online (Sandbox Code Playgroud)
如何找到具有泛型类型的属性Customer
?
换句话说,我正在寻找创建方法:
public PropertyInfo GetProperty<T>(){
var allProperties = TypeOf(MyEntities).GetProperties();
// implementation
}
Run Code Online (Sandbox Code Playgroud)
如果我调用该方法,GetProperty<Customer>()
那么我想得到第一个属性.如果我调用该方法,GetProperty<Order>()
那么我想得到最后一个属性.我怎样才能<Type>
用反射检查?
我有一个类,构造函数需要一个类和其他东西,如:
public class SomeClass<T>
{
//global private variables for class
List<T> originalList = new List<T>;
List<T> tempList = new List<T>;
public SomClass(List<T> listParam, string name, ..etc)
{
originalList = listParam;
tempList = listParam;
originalList.removeAt(0); // this also removes an item from tempList.
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这是因为originalList和tempList具有相同的引用.我怎么能让他们有不同的参考.我使用tempList来过滤结果,每当我想刷新时我都使用originalList
我正在创建一个基本风格.我正在使用继承来实现我的基本样式.我知道如何在派生类上添加属性,但我不知道如何更改属性.让我给你举个例子:
假设我有这种基本风格:
<!-- SrollViewer ScrollBar Repeat Buttons (at each end) -->
<Style x:Key="ScrollBarLineButton" TargetType="{x:Type RepeatButton}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="Focusable" Value="false"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RepeatButton}">
<Border
Name="Border"
Margin="1"
CornerRadius="2"
Background="WhiteSmoke"
BorderThickness="1">
<Image Stretch="Uniform" Source="/FilesPro;component/Images/scrollArrow.png" Height="40" VerticalAlignment="Center" HorizontalAlignment="Center" Width="52" >
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="-1" />
<TranslateTransform Y="40"/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
<!--
<Path
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{StaticResource GlyphBrush}"
Data="{Binding Path=Content,
RelativeSource={RelativeSource TemplatedParent}}" >
</Path>
-->
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
我想创建一个新的样式,它具有与ScrollBarLineButton相同的属性,但是图像transfrom scaleY = 1而不是-1.
当我做: …
我知道如何拖动视图或对象:
- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [[event allTouches] anyObject];
if( [touch view] == ViewMain)
{
CGPoint location = [touch locationInView:self.view];
ViewMain.center = location;
}
}
Run Code Online (Sandbox Code Playgroud)
但是我想从触摸它的那一点开始拖动那个视图或图像.例如,如果我拖动(我突出显示视图并在光标上放置蓝色):
我开始拖动的那一刻,如果我将鼠标向右拖动20 px然后我希望视图也拖动20 px而不是:
也许我必须将视图的中心更改为我触摸它的点.我怎么能这样做?
换句话说,我想在iPad上拖动应用程序时做一些事情:
c# ×6
security ×2
wpf ×2
3d ×1
action ×1
basedon ×1
drag ×1
encryption ×1
generics ×1
inheritance ×1
ipad ×1
iphone ×1
objective-c ×1
reflection ×1
sql-server ×1
styles ×1
viewport ×1
wcf ×1
xaml ×1
xcode ×1