我在我的数据库中有一个大约200,000个条目的视图.我正在阅读以下代码:
using (SqlConnection conn = new SqlConnection....)
{
conn.Open();
string query = "SELECT * FROM SP3DPROJECT.dbo.XSystemHierarchy";
using (SqlCommand comm = new SqlCommand())
{
comm.CommandText = query;
comm.Connection = conn;
using (SqlDataReader reader = comm.ExecuteReader())
{
DateTime start = DateTime.Now;
while (reader.Read())
{
// Code goes here, but for performance
// test I'm letting this empty
}
DateTime end = DateTime.Now;
TimeSpan elapsed = (end- start).TotalSeconds;
}
}
}
Run Code Online (Sandbox Code Playgroud)
视图只有2列GUID类型.将ExecuteCommand()是非常快的,但while循环(甚至没有任何代码,只是循环)大约需要150秒.
有更好或更快的方法吗?
我有一个List<Matrix4>,其中Matrix4包含16个浮点数的结构,所以它使用16*4字节= 64字节.
当我开始向列表添加项目时,当我跨越100万行时,它会抛出Out Of Memory Exception.
我知道.NET每个对象的限制为2Gb,但除非我完全忘记了:
1.000.000*64字节= ~61mb
哪个甚至没有接近极限.
当我开始填充列表时,根据任务管理器,我的应用程序正在使用896mb,当我到达异常时它使用1028mb.
这台电脑有8GB的物理内存,但它只使用6Gb.
有关原因的任何线索可能会发生吗?
---更新----
将平台目标更改为x64解决了单独测试项目的问题.不幸的是原始项目不能是x64因为引用x86 DLL不能在x64上运行.但这是另一个问题.
我没有考虑将它改为x64,因为它似乎远离内存限制,但我认为Hans Passant在120mb上距离1.3Gb限制太近了.谢谢你们.
我需要在转换器类中定义DependencyProperty,因为我需要这些数据来进行转换,而这个数据在另一个对象中,而不是我绑定的对象.
我的转换器类如下:
public class LEGOMaterialConverter : DependencyObject, IValueConverter
{
public DependencyProperty MaterialsListProperty = DependencyProperty.Register("MaterialsList", typeof(Dictionary<int, LEGOMaterial>), typeof(LEGOMaterialConverter));
public Dictionary<int, LEGOMaterial> MaterialsList
{
get
{
return (Dictionary<int, LEGOMaterial>)GetValue(MaterialsListProperty);
}
set
{
SetValue(MaterialsListProperty, value);
}
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
LEGOMaterial material = null;
MaterialsList.TryGetValue((int)value, out material);
return material;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)
然后我在Window.REsources区域实现它:
<Window.Resources>
<local:LEGOMaterialConverter x:Key="MaterialsConverter" MaterialsList="{Binding Path=Materials}" />
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误: …
我正在android:drawable像这样以编程方式设置RadioButton:
Drawable unchecked = getResources().getDrawable(R.drawable.ic_room_car);
Drawable d= getResources().getDrawable(R.drawable.ic_room_car);
Shape circle = ?????;
??? checked = combine circle and d
SateListDrawable states= new StateListDrawable();
states.addState(new int[] {android.R.attr.state_checked}, checked);
states.addState(new int[] {}, unchecked);
((RadioButton)findViewById(R.id.icon_1)).setButtonDrawable(states);
Run Code Online (Sandbox Code Playgroud)
基本上它有一个自定义图标,当它未选中时我正在从资源中读取,选中时我想在图标后面画一个圆圈。
未经检查的行为设置在第二行 addState 中,并且它正在工作。我的问题是如何以编程方式绘制一个圆,然后以某种方式将它与我从资源中读取的可绘制对象相结合。
我正在尝试构建包含一些具有动态导入功能的组件的项目,例如:
import {Directive, Input, ElementRef} from '@angular/core';
@Directive({
selector: '[saKnob]'
})
export class KnobDirective {
@Input() saKnob: any;
constructor(private el: ElementRef) {
import('jquery-knob').then(()=>{
this.render()
})
}
render(){
$(this.el.nativeElement).knob(this.saKnob || {})
}
}
Run Code Online (Sandbox Code Playgroud)
在构造函数上的动态导入似乎是问题所在。我收到以下错误:
ERROR in ./src/app/shared/forms/input/knob.directive.ts 15:8
Module parse failed: 'import' and 'export' may only appear at the top level
(15:8)
You may need an appropriate loader to handle this file type.
| var _this = this;
| this.el = el;
> import('jquery-knob').then(function () {
| _this.render();
| });
Run Code Online (Sandbox Code Playgroud)
据我研究,从Angular …
有没有人知道是否有办法改变D3线图上的Y轴限制?
我正在使用Codeplex源代码中的最新版本... WPF版本,而不是Silverlight版本.
我正在绘制来自Android传感器的读数,并且范围值会发生很大变化.有时它大约为零,图表看起来像这样:

然后值的大小发生变化,Y轴重新调整以显示整个数据,图形现在如下所示:

查看Y值如何从图1更改为2.
我想要的是使Y轴具有我选择的固定值,比如-10到+10.然后图表将始终以相同的比例绘制.
有没有办法做到这一点?
图的XAML代码是这样的:
<d3:ChartPlotter
Name="gyroGraph"
Margin="21,5,10,0"
Grid.ColumnSpan="2"
Background="White"
Grid.Row="1"
LegendVisibility="Collapsed"
NewLegendVisible="False"
MainHorizontalAxisVisibility="Collapsed"
MainVerticalAxisVisibility="Collapsed">
<d3:VerticalAxis
FontSize="8" />
<d3:Header
Content="Angular Velocity"
FontSize="11" />
</d3:ChartPlotter>
Run Code Online (Sandbox Code Playgroud)
谢谢和最好的问候,罗德里戈巴斯尼亚克
如果我像这样使用setColorFilter,它可以使用所选颜色绘制我的图像:
int color = Color.parseColor("#FF0000");
viewHolder.Icon.setColorFilter(color);
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试使用资源颜色,它什么都不做:
viewHolder.Icon.setColorFilter(R.color.colorPrimary);
Run Code Online (Sandbox Code Playgroud)
资源定义如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#FF5722</color>
</resources>
Run Code Online (Sandbox Code Playgroud) 我在TypeScript项目中使用TSLint,它i在以下代码中抱怨变量:
for (let i = 0; i < body.children.length; i++)
{
body.children[i].classList.remove('active');
}
Run Code Online (Sandbox Code Playgroud)
信息是 'Shadowed variable: 'i' (no-shadowed-variable)'
这个循环有什么问题吗?在TS中执行for循环的正确方法是什么?
我想创建一组单选按钮来选择颜色.像这样的东西:
我怎样才能实现这样的目标?我没有在原版RadioButton上找到任何颜色属性.我是否必须创建自定义控件?如果是的话,有人可以在基本步骤上暗示我,这样我可以尝试一些新的研究吗?我是Android的新手,并试图通过做...
我将传感器数据从Android设备发送到C#中的TCP服务器.android客户端以32字节的固定大小块发送数据.
在服务器中,我读取数据,期望它将以完整包形式出现,但由于TCP是流协议,因此一些消息到达服务器分为两部分.我知道,因为我可以使用名为SocketSniff的软件观看它.
问题是我不知道如何在我的服务器上处理它.
我发现使用的所有例子NetworkStream.Read(),在该方法我必须通过字节来存储数据的读取,偏移和字节数来读取的阵列.这个字节数组必须具有已知大小,在我的例子中为32.
我不知道到达我服务器的邮件的实际大小,但它可能是以下情况之一.
如果接收的数据大小为32字节,则一切正常.
如果收到的数据大小超过32个字节,我想我正在丢失数据.
如果接收的数据大小小于32个字节,假设为20个字节,则这些字节存储在我的数组中,并且数组的最后12个字节保留为零值.由于我可能真的收到一些零,所以无法知道我真正收到的大小,因此我无法将其与剩下的数据合并,这些数据应该在下次阅读时出现.
我处理接收的代码如下:
int buffer = 32;
...
private void HandleClientComm(object client)
{
TcpClient tcpClient = (TcpClient)client;
NetworkStream clientStream = tcpClient.GetStream();
byte[] message = new byte[buffer];
int bytesRead;
while (true)
{
bytesRead = 0;
try
{
bytesRead = clientStream.Read(message, 0, message.Length);
}
catch
{
break;
}
if (bytesRead == 0)
{
// Connection closed
break;
}
SensorData sensorData = ProcessTcpPacket(message);
}
tcpClient.Close();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法知道我在套接字中收到的数据大小?
c# ×4
android ×3
wpf ×2
.net ×1
angular ×1
charts ×1
radio-button ×1
sockets ×1
sql-server ×1
tcp ×1
tcplistener ×1
typescript ×1