Public Shadows Function GetFeatureClass() As RealtimeFeatureClass
public new RealtimeFeatureClass GetFeatureClass()
Return Value
A FeatureClass.
Public Shadows Function GetFeatureClass() As RealtimeFeatureClass
public new RealtimeFeatureClass GetFeatureClass()
| Exception | Description |
|---|---|
| ArcGIS.Core.CalledOnWrongThreadException | This method or property must be called within the lambda passed to QueuedTask.Run. |
{
// Note: call within QueuedTask.Run()
{
//Must be called on the feature class
using var rfc = streamLayer.GetFeatureClass();
rfc.Truncate();
}
}
{
// Note: call within QueuedTask.Run()
{
//query filter can be null to search and retrieve all rows
//true means recycling cursor
using (var rc = streamLayer.SearchAndSubscribe(qfilter, true))
{
//waiting for new features to be streamed
//default is no cancellation
while (rc.WaitForRowsAsync().Result)
{
while (rc.MoveNext())
{
using (var row = rc.Current)
{
//determine the origin of the row event
switch (row.GetRowSource())
{
case RealtimeRowSource.PreExisting:
//pre-existing row at the time of subscribe
continue;
case RealtimeRowSource.EventInsert:
//row was inserted after subscribe
continue;
case RealtimeRowSource.EventDelete:
//row was deleted after subscribe
continue;
}
}
}
}
}//row cursor is disposed. row cursor is unsubscribed
//....or....
//Use the feature class instead of the layer
using var rfc = streamLayer.GetFeatureClass();
//non-recycling cursor - 2nd param "false"
using (RealtimeCursor rc = rfc.SearchAndSubscribe(qfilter, false))
{
//waiting for new features to be streamed
//default is no cancellation
while (rc.WaitForRowsAsync().Result)
{
//etc
}
}
}
}
{
// Note: call within QueuedTask.Run()
{
//Recycling cursor - 2nd param "true"
//or streamLayer.Subscribe(qfilter, true) to just subscribe
using (var rc = streamLayer.SearchAndSubscribe(qfilter, true))
{
//auto-cancel after 20 seconds
var cancel = new CancellationTokenSource(new TimeSpan(0, 0, 20));
//catch TaskCanceledException
try
{
while (rc.WaitForRowsAsync(cancel.Token).Result)
{
//check for row events
while (rc.MoveNext())
{
using var row = rc.Current;
//etc
}
}
}
catch (TaskCanceledException)
{
//Handle cancellation as needed
}
cancel.Dispose();
}
}
}
{
// Note: call within QueuedTask.Run()
{
using var rfc = streamLayer.GetFeatureClass();
using var rfc_def = rfc.GetDefinition();
if (rfc_def.HasTrackIDField())
{
//Track aware
}
}
}
{
// Note: call within QueuedTask.Run()
{
using (var rfc = streamLayer.GetFeatureClass())
using (var rfc_def = rfc.GetDefinition())
{
if (rfc_def.HasTrackIDField())
{
var fld_name = rfc_def.GetTrackIDField();
}
}
}
}
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)