我正在开发一个生成相对大量Word输出的应用程序.目前,我们使用Word Interop服务来创建文档,但速度很慢,尤其是在旧版(2007年之前)版本的Office中.我们想加快这一代人.
我还没有做过很多分析,但我非常有信心问题是我们正在进行大量的COM调用.我希望分析会产生一个比其他调用慢的调用子集,但我的直觉告诉我,这可能是COM开销(或Word Interop开销)的问题,而不仅仅是一些慢速调用.
此外,该产品可以生成HTML输出,并且该过程(a)非常快,并且(b)使用几乎相同的代码路径,只是针对特定于HTML的功能部件使用不同的子类.所以我很确定我们的算法基本上没有慢.
所以......我正在寻找有关加速Word文件生成的其他方法的建议.
我们不能只将生成的HTML文件重命名为.doc,而我们无法生成RTF - 在这两种情况下,重要的格式信息都会丢失,而在RTF情况下,内联图形无法正常工作.
我们正在评估的方法之一是以编程方式从模板生成和打开Word文件(通过互操作),该模板具有一个知道如何使用平面文件并创建必需输出的宏.我们对这种方法的反馈感兴趣,以及加快速度的任何其他想法.
我有一个ac#program充当客户端和许多客户端程序,它再次是ac#windows应用程序连接到这个c#server程序从sqlite数据库读取数据.为了避免连接多个客户端时出现锁定问题,我使用了以下代码,
System.Threading.Monitor.Enter(Lock);
try
{
filter.Execute();//get data from database
Request.Clear();
return filter.XML;//create xml and return to client
}
finally
{
System.Threading.Monitor.Exit(Lock);
}
Run Code Online (Sandbox Code Playgroud)
服务器有时会挂起并需要重新启动服务器程序.在最终之前做出退货声明是一个很好的做法吗?
关心sangeetha
作为一个简单的例子,我有一个WPF应用程序,主窗口上有一个按钮,因此代码背后:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
async void Button_Click(object sender, RoutedEventArgs e)
{
await Task<bool>.Run(() => this.DoOnThread());
}
async Task<bool> DoOnThread()
{
Thread.CurrentThread.Name = "MyTestThread";
Thread.Sleep(1000);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我通过VisualStudio线程窗口中断"返回true"我可以获取ThreadID,如果我继续并让代码运行完成并等待一段时间直到线程退出,我得到"线程0x9ad34已经退出代码259(0x103) )"显示在VS输出窗口中.
我做错了什么,如何确保线程退出代码为0?
我有一个字符串,表示我想要转换为整数的大十六进制数.当我尝试转换时,等价整数的答案是否定的.这是代码:
string hex = "9782E78F1636";
BigInteger b1 = BigInteger.Parse(hex, NumberStyles.AllowHexSpecifier);
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到正确的结果?
我正在使用 xamarin 表单创建一个移动应用程序。但是,我得到以下异常:
状态代码 500,ReasonPhrase:'内部服务器错误',版本:1.1,内容:System.Net.Http.StreamContent,
在尝试执行时postAsync。我不知道哪里出了问题。
这是导致异常的代码:
private async void btnCheckout_OnClicked(object sender, EventArgs e)
{
ConstantCS constant = new ConstantCS();
var client = new HttpClient();
client.BaseAddress = new Uri(constant.URLBaseAddress);
//Store persive data locally
int MyOrdersID_ = int.Parse(Application.Current.Properties["MyOrdersID"].ToString());
for (int i = 0; i < orderItemList.Count; i++)
{
//string postdataJson = JsonConvert.SerializeObject(new { UserID = nric.Text.Trim(), Password = pin.Text.Trim() });
string postJson = JsonConvert.SerializeObject(new { orderID = MyOrdersID_, itemID = orderItemList[i].Item_Id, itemName = orderItemList[i].orderItem_Name, orderQty = orderItemList[i].orderItem_Quantity, itemRequest = …Run Code Online (Sandbox Code Playgroud) 我想将十六进制颜色代码转换为合适的字符串颜色名称......使用以下代码我能够获得照片中“最常用”颜色的十六进制代码:
class ColorMath
{
public static string getDominantColor(Bitmap bmp)
{
//Used for tally
int r = 0;
int g = 0;
int b = 0;
int total = 0;
for (int x = 0; x < bmp.Width; x++)
{
for (int y = 0; y < bmp.Height; y++)
{
Color clr = bmp.GetPixel(x, y);
r += clr.R;
g += clr.G;
b += clr.B;
total++;
}
}
//Calculate average
r /= total;
g /= total;
b /= total;
Color myColor = …Run Code Online (Sandbox Code Playgroud) 在一个大项目中,虽然以前的开发人员已经工作过,但您可以找到gradle根本没有任何用途的依赖项。
这些依赖性会影响apk大小吗?以及依赖关系如何影响apk大小,如果您只使用库中的一种方法,这是否意味着附加到您的apk.
我发现,类中有一个静态属性,System.Windows.SystemParameters用于声明用户为他的 Windows 整体选择的颜色。
但是,用户还有第二种可能性可以启用或禁用任务栏/窗口栏是否应使用相同的颜色。
我无法在 SystemParameters 类中找到它的键。
当我的表单引用图像和图标资源时,我对是否要处理它们感到有点困惑。具体来说,如果我从设计时资源引用图像/图标或在运行时加载图像,行为是否存在差异。(.Net4、VS2015、C#)
Dispose()显然,如果您在设计时将窗体的 Icon 属性设置为 Resource,则在窗体关闭时您不会显式地设置它。但如果你这样设置呢:
this.Icon = Resources.my_default_icon;
Run Code Online (Sandbox Code Playgroud)
this.Icon关闭该表格后是否需要丢弃?
同样,如果我有一个仅用于“品牌”的迷你类,并且有一个Icon在运行时加载的静态对象(可能来自文件,可能只是引用嵌入的资源),该怎么办?Icon我应该在 static的 getter中使用复制构造函数吗?或者可以将其设为公共静态Icon并允许我的所有表单在其事件中包含以下一行行吗_Shown()?
this.Icon = MyBrandingClass.formIcon;
Run Code Online (Sandbox Code Playgroud)
不确定它是否有很大不同,我看到了一些关于在运行时设置图片框图像和处理图像的参考,但是您会处理嵌入的资源图像吗?如果我传递对我的品牌形象的引用,我可以/应该省略处理吗?或者我应该在 getter 中使用复制构造函数来返回一个新的 Image 对象,然后在完成表单后始终将其丢弃?
我有一个包含studentList学生的组合框.当我选择学生时,它应该填写学生姓名的文本字段.每当从组合框中选择学生时,我都会收到以下错误
ArgumentOutOfRangeException was unhandled
Index was out of range. Must be non-negative and less than the size of the collection.
Run Code Online (Sandbox Code Playgroud)
我认为问题可能在我的循环中,但我无法找到如何解决错误,任何帮助将不胜感激
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int i;
for (i = 0; i < Main.studentList.Count; i++)
{
if (comboBox1.SelectedItem == Main.studentList[i].StudentName + " " + Main.studentList[i].StudentId)
{
break;
}
}
txtName.Text = Main.studentList[i].StudentName; //where the error occurs
}
public void ChangeStudent_Load(object sender, EventArgs e)
{
//loading combobox from studentList
foreach (var student in Main.studentList)
{
comboBox1.Items.Add(student.StudentName + " …Run Code Online (Sandbox Code Playgroud) c# ×9
.net ×1
android ×1
apk ×1
biginteger ×1
libraries ×1
return-value ×1
web-services ×1
windows-10 ×1
winforms ×1
wpf ×1