我编写了一个应用程序,它在我的开发设备和我的 Win 7/8/10 虚拟机上运行良好,但在我尝试过的每台其他计算机(win 7/8/10)上都崩溃了。启动应用程序时,几乎就像什么也没发生一样。
在事件查看器中,例外是XamlParseException。
事件查看器发现了这一点(v4.0.30319即使我的设备和所有设备都安装了 .NET 4.5+):
Application: HelpScoutMetrics.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Windows.Markup.XamlParseException
Stack:
at System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri)
at System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean)
at System.Windows.Application.LoadComponent(System.Object, System.Uri)
at HelpScoutMetrics.MainWindow.InitializeComponent()
at HelpScoutMetrics.MainWindow..ctor()
at HelpScoutMetrics.App.OnStartup(System.Windows.StartupEventArgs)
at System.Windows.Application.<.ctor>b__1(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, …Run Code Online (Sandbox Code Playgroud) 我想在google apps脚本属性中存储对象.
让我们说我有一个对象: var myObject = {var1:"stuffval", var2:"stuff2val"};
如果我通过scriptProperties.setProperty("myProperty", myObject );属性将其存储为属性,则存储为字符串{var1=stuffval, var2=stuff2val}.
如何在Google Apps脚本中从该字符串中检索我的对象?
我一直在试图弄清楚如何从Loaded=""事件中传递参数。我在这里问了一个问题:我将如何在 Loaded="" 上传递参数?并被引导到 InvokeCommandAction 的方向。
问题是我无法弄清楚如何实际使用 InvokeCommandAction 来调用我的方法。我的 XAML:
<Expander x:Name="Greeting_And_Opening_Expander" ExpandDirection="Down" IsExpanded="True" FontSize="14" FontWeight="Bold" Margin="5" BorderThickness="1" BorderBrush="#FF3E3D3D">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding ExpanderLoaded}"
CommandParameter="x:Static local:Sections.Opening"/>
</i:EventTrigger>
</i:Interaction.Triggers>
Run Code Online (Sandbox Code Playgroud)
我ExpanderLoaded在后面的代码中命名了一个方法,如下所示:
private void ExpanderLoaded(object sender, RoutedEventArgs e, Sections section)
{
//Do Stuff
}
Run Code Online (Sandbox Code Playgroud)
以及相同命名空间下的 Enum:
public enum Sections
{
Default = 0,
Opening = 1,
Verify = 2
}
Run Code Online (Sandbox Code Playgroud)
我需要做什么才能使用我上面发布的 XAML 调用我的方法?我对 WPF 很陌生,所以如果我最终问了一些似乎很愚蠢的问题,请试着忍受我。我浏览过 stackoverflow 并阅读了其他类似的问题,但一直无法提供足够的信息来继续我自己的工作。
我正试图从jsRender转换到AngularJs,似乎无法弄清楚如何生成多个表行ng-repeat.
我需要为每个ng-repeat生成两个表行,这些行彼此相关.第二行实际上是一个隐藏的行,像手风琴一样展开.这与renderJs完美配合:
使用renderJs:
<table>
<thead>
<tr>
<th>Stuff</th>
<th>Stuff2</th>
</tr>
</thead>
<tbody>
{{for myArray}} <!-- Creates two rows per item in array -->
<tr>
<td>{{data}}</td>
<td>{{data2}}</td>
</tr>
<tr class="special-row">
<td>{{otherData}}</td>
<td>{{otherData2}}</td>
</tr>
{{/for}}
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
使用AngularJs:
<table>
<thead>
<tr>
<th>Stuff</th>
<th>Stuff2</th>
</tr>
</thead>
<tbody>
<div ng-repeat="element in myArray"> <!-- This gets removed since it's not a valid element for a table body -->
<tr>
<td>{{element.data}}</td>
<td>{{element.data2}}</td>
</tr>
<tr class="special-row">
<td>{{element.otherData}}</td>
<td>{{element.otherData2}}</td>
</tr>
</div>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
我不能把<div>我的桌子内部放在ng-repeat …
我正在尝试刷新单元格更改的查询,但我无法弄清楚如何引用查询.
我的代码: Sheets("Roster Query").QueryTables(0).Refresh
只是错误:
运行时错误'1004':
应用程序定义或对象定义的错误
我有一个名为"名册过滤器"的工作表,其中包含我要刷新的查询表.如何获取QueryTable并刷新它?
编辑:还试过:
For Each qt In Sheets("Roster Query").QueryTables
qt.Refresh
Next
Run Code Online (Sandbox Code Playgroud)
这不会出错,但查询不会刷新.
当我尝试将下拉列表与一起使用search selection并选择子类别时,它会自动展开,并且下拉列表中会出现一个小的滚动条。如果我不添加,search selection它似乎可以正常运行。
JSFiddle:https://jsfiddle.net/utqz406p/4/
我该如何解决这个问题?
编辑:这似乎也发生与selection类。
我试图将日期和值数组连接到日期数组,而不过滤掉额外的日期。这里的LinqJS 参考对于我实际如何使用连接来说非常令人困惑。这里的问题也没有多大帮助。
编辑:
在此处加入文档:https://svschmidt.github.io/linqjs/Collection.html#Join
看来我需要帮助来解决如何使连接成为连接outer而不是inner连接,因此它包含空/未定义值。
假设我有两个数组:
数组1:
[
'2017-02-10',
'2017-02-11',
'2017-02-12',
'2017-02-13',
'2017-02-20',
'2017-02-21',
'2017-02-22',
'2017-02-23',
'2017-02-24',
'2017-02-25',
'2017-02-26',
'2017-02-27'
]
Run Code Online (Sandbox Code Playgroud)
数组2:
[
{ date: '2017-02-10', value: 5 },
{ date: '2017-02-12', value: 8 },
{ date: '2017-02-13', value: 13 },
{ date: '2017-02-21', value: 14 },
{ date: '2017-02-24', value: 11 },
{ date: '2017-02-27', value: 7 }
]
Run Code Online (Sandbox Code Playgroud)
我想加入他们,所以我得到这个结果(-for undefined):
[
'5',
-,
'8',
'13', …Run Code Online (Sandbox Code Playgroud) 我想取一组线的所有交点,找到它们创建的所有凸四边形.我不确定是否有适合这种情况的算法,或者我需要循环创建自己的算法.
我有一系列线条和所有交叉点.
线和交叉点:
示例四边形1:
在这种情况下,我会提出8个四边形.
我怎样才能做到这一点?如果没有我可以为此实现的算法,我如何检查每个交叉点与其他交叉点以确定它们是否形成凸四边形?
我浏览了一些 C# 示例并发现了以下内容:
using System;
using System.Collections.Generic;
namespace ConsoleApp1
{
class Program
{
delegate void Printer();
static void Main()
{
List<Printer> printers = new List<Printer>();
for (int i = 0; i < 10; i++)
{
printers.Add(delegate { var d = i; Console.WriteLine(d); });
}
foreach (var printer in printers)
{
printer();
}
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我期望它0通过输出9,因为 anint是一种值类型,d应该设置为i当时的任何值。
然而,这输出了10十倍。
为什么是这样?int 不是一个引用而是在委托内部吗?
注意:我并不是想在这里解决问题,只是以可重复应用的方式了解它是如何工作的。
编辑:我的困惑的例子
int i = …Run Code Online (Sandbox Code Playgroud) 我使用 aConcurrentQueue将 I/O 绑定任务中的项目入队,并将它们从另一个任务中出队进行处理。当队列达到一定大小时,我停止将项目添加到队列中,以便处理可以跟上。为此,我检查了该ConcurrentQueue.Count属性。
问题在于该Count属性的行为似乎与列表或其他集合中的行为不同。它非常慢,队列越大,读取Count属性的速度就越慢。一个项目中有 20k 个项目,ConcurrentQueue几乎所有处理器时间都花在了该Count属性上。
粗略示例:
while (reader.Read())
{
if(Queue.Count >= MaxQueueSize)
{
//Wait
}
//Do Stuff
}
Run Code Online (Sandbox Code Playgroud)
运行性能分析器时,所有时间都花在System.Collections.Concurrent.CDSCollectionETWBCLProvicer.ctor().
这似乎只发生在 .NET Core 2 上,这不会发生在 .NET 4.6.2 中
.Net Core 有没有办法解决这个问题?